我有一系列产品详细信息,在 product_description 字符串中我想要转义一些特殊字符,例如:“,\ ..etc但我不知道应该写些什么到这样做,我做的是:
(4)
但是当我检查结果时,它给出了有关这些特殊字符的错误。
这是产品描述字符串:
30英寸Apple Cinema HD Display提供..等等。
错误在双引号中。
你能帮我解决一下怎么做。谢谢
答案 0 :(得分:2)
您遇到的错误是因为"
未在数组中转义。它很可能如下所示:
$array = array(
"ProductData" => array(
"ProductName": "Apple Cinema Display",
"ProductDescription" => "The 30" Apple Cinema HD Display deliver..etc"
)
);
要解决此问题,请在代码中进行以下操作:
$array = array(
"ProductData" => array(
"ProductName": "Apple Cinema Display",
"ProductDescription" => "The 30\" Apple Cinema HD Display deliver..etc"
)
);
如果要从数据库中提取数据,则应自动完成此操作。如果您不使用数据库,我的建议是在需要的地方手动添加反斜杠。由于您最有可能在整个字符串周围使用双引号,因此无法自动添加这些函数。
答案 1 :(得分:1)
您可以尝试使用
$value = json_encode($array[ProductData][Product_description]);
$escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c");
$replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b");
$result = str_replace($escapers, $replacements, $value);
echo '<pre>';
print_r($result);
echo '<pre>';
这是参考
PHP's json_encode does not escape all JSON control characters