php - 用php中json字符串中的单引号替换双引号
问题描述
我有一个包含一些 html 的 json 字符串,它是属性。我试图在这个字符串中用单引号转义或替换双引号。我的代码适用于一些 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>"}
解决方案
我希望这能按预期工作([^{,:])"(?![},:])
$json='{"en":"<b class="test" size="5" >Description</b>"}';
$json=preg_replace('/([^{,:])"(?![},:])/', "$1".'\''."$2",$json);
结果是
{"en":"<b class='test' size='5' >Description</b>"}
推荐阅读
- database - 分层数据库在节点中存储什么样的数据?
- azure-functions - 如何防止 ADF Web 活动在标题中发送“Expect=100-continue”
- django - 在 django 中获取表单值(外键字段)
- python - Python 修补来自导入模块的函数
- ios - 缩小相机 - Xcode Object Capture API
- excel - 在excel中将表格转换为不同的格式
- c++ - 在二进制文件中查找一个数字,旋转和覆盖
- typescript - 将值传递给抽象类的最佳方法是什么?
- sql-server - 避免 MSSQL 中的多个左连接
- sql - 如何在 Postgres 中返回 Null 而不是什么都没有?