Php 替换字符串右侧和左侧的第一个匹配项

Php 替换字符串右侧和左侧的第一个匹配项,php,Php,我试图从右侧替换json字符串{,从左侧替换} $json_data = preg_replace( '/\{/' , '', $json_data ,1 ); $json_data = rtrim( $json_data ,'}' ); // here is issue 但是像这样的字符串{“chart”:“c12”,“series”:{“name”:“Test”,“data”:[]}}替换为 "chart":"c12","series":{"name":"Test","data":[]

我试图从右侧替换json字符串
{
,从左侧替换
}

$json_data = preg_replace( '/\{/' , '', $json_data ,1 );
$json_data = rtrim( $json_data ,'}' ); // here is issue
但是像这样的字符串
{“chart”:“c12”,“series”:{“name”:“Test”,“data”:[]}}
替换为

"chart":"c12","series":{"name":"Test","data":[]
rtrim替换了“}”。如何替换字符串右侧第一个出现的
}

$json_data = preg_replace('/^\s*\{\s*(.+)\s*\}\s*$/', '$1', $json_data);

然而,很难想象在必要的时候会出现什么情况。

有什么理由不在字符串上使用
json\u decode()
substr($string,1,-1)?@Twisted1919我必须向它添加一个函数,
$json_data.=',onClick:function(){/*…这里有一些代码..*/}$json_data='{.$json_data.'}'
json_decode(),然后您将拥有一个对象。在此基础上,添加onclick或任何其他元素,如
$decodedJson->onclick='function()…'
然后使用
json\u encode()
对其进行编码。不要编写自己的json解析器。在编码时,它会在
function…
周围添加引号,谢谢您的回答。如何使js对象像`
{“chart”:“c12”,“series”:{“name”:“Test”,“data”:[]},onClick:function(){alert(“hi”)}
从服务器端。json assign to javascript变量将其插入
您可以
eval
JS中的json字符串,以获得具有正确函数定义的JS对象
var obj=eval(“”)
甚至
var obj=
但是,如果您不确定JSON.yes的来源,这种方法可能会有一些安全问题。。在计算机端评估中存在一些安全问题。。我想从服务器端执行此操作。是否要在服务器端执行JS函数??我认为这在PHP中是不可能的。您的问题似乎更复杂。创建新的问题,更多地解释你拥有什么和你想要得到什么。也许社区会给你一个如何让它工作的建议。