在 json_encode() 中转义正斜杠
在 PHP 中使用 JSON 时,经常会遇到转义正斜杠(“/”)编码期间。这是因为 JSON_ENCODE() 会自动转义这些字符,这在某些情况下可能会出现问题。
例如,当您使用 json_decode($response)->data 解码从 Instagram 提取的 JSON 数据时,您可能需要将变量解析为 PHP 数组,重构数据,并重新编码以进行缓存。但是,打开缓存文件后,您可能会注意到正斜杠已被转义,类似于“http://distilleryimage4.instagram.com/410e7...”。
为了防止这种自动转义,您可以在 PHP 5.4 或更高版本中使用 JSON_UNESCAPED_SLASHES 标志:
json_encode($str, JSON_UNESCAPED_SLASHES);
但是,如果您使用早期版本的 PHP,您需要手动修改现有函数以满足您的需求。考虑参考 https://snippets.dzone.com/posts/show/7487 等资源来获取指导。
这里有一个简单的演示:
$url = 'http://www.example.com/'; echo json_encode($url), "\n"; // Output: "http:\/\/www.example.com\/" echo json_encode($url, JSON_UNESCAPED_SLASHES), "\n"; // Output: "http://www.example.com/"
通过了解如何控制正斜杠在 json_encode() 中进行转义,可以在 JSON 相关操作时有效管理数据。
以上是如何防止 PHP 的 `json_encode()` 中的正斜杠转义?的详细内容。更多信息请关注PHP中文网其他相关文章!