json_encode()如何转义正斜杠?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (364)

我从Instagram上提取JSON:

$instagrams = json_decode($response)->data;

然后将变量解析为PHP数组以重新构造数据,然后重新编码和缓存文件:

file_put_contents($cache,json_encode($results));

当我打开缓存文件时,我的所有正斜杠“/”都被转义了:

http:\/\/distilleryimage4.instagram.com\/410e7...

提问于
用户回答回答于

使用JSON_UNESCAPED_SLASHES

json_encode($str, JSON_UNESCAPED_SLASHES);

示例演示

<?php
/*
 * Escaping the reverse-solidus character ("/", slash) is optional in JSON.
 *
 * This can be controlled with the JSON_UNESCAPED_SLASHES flag constant in PHP.
 *
 * @link http://stackoverflow.com/a/10210433/367456
 */    

$url = 'http://www.example.com/';

echo json_encode($url), "\n";

echo json_encode($url, JSON_UNESCAPED_SLASHES), "\n";

示例输出:

"http:\/\/www.example.com\/"
"http://www.example.com/"
用户回答回答于

当在<script>标签中使用JSON时,它是必需的,</script>即使是在一个字符串中,也会结束脚本标签。

扫码关注云+社区

领取腾讯云代金券