我有一个包含一些html的json字符串,它是attrubutes。我试图在此字符串中转义或将双引号替换为单引号。我的代码可以使用某些html属性,但不能全部使用。
我的例子:
$json='{"en":"<b class="test" size="5" >Description</b>"}';
$json=preg_replace('/([^:,{])"([^:,}])/', "$1".'\''."$2",$json);
echo htmlspecialchars($json);
//ouput: {"en":"<b class='test' size='5" >Description</b>"}
所需结果:
{"en":"<b class='test' size='5' >Description</b>"}
答案 0 :(得分:3)
我希望这能按预期进行([^{,:])"(?![},:])
$json='{"en":"<b class="test" size="5" >Description</b>"}';
$json=preg_replace('/([^{,:])"(?![},:])/', "$1".'\''."$2",$json);
结果
{"en":"<b class='test' size='5' >Description</b>"}
答案 1 :(得分:-1)
尝试以下方法:str_replace('"', "'",$json);
$json='{"en":"<b class="test" size="5" >Description</b>"}';
$json=str_replace('"', "'",$json);
echo htmlspecialchars($json);
输出将为{'en':'<b class='test' size='5' >Description</b>'}