当前位置: 首页 > 面试题库 >

json_encode()转义正斜杠

柳宪
2023-03-14
问题内容

我从Instagram提取JSON:

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

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

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

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

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

我从搜索中收集到json_encode()自动执行此操作…是否可以禁用它?


问题答案:

有没有办法禁用它?

是的,您只需要使用该JSON_UNESCAPED_SLASHES标志。

重要的 阅读之前:https :
//stackoverflow.com/a/10210367/367456(知道你在做什么-
知道你的敌人)

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/"


 类似资料:
  • 问题内容: 谁能告诉我在Java中如何使用正斜杠转义字符。我知道反斜杠是\ \,但是我尝试了\ /和/ /却没有运气! 这是我的代码: 提前致谢! 问题答案: 您既不需要以Java语言或正则表达式来转义正斜杠。 还要注意这样的块: 更紧凑和可读地写为: 因此,对于您而言,我相信您的方法应类似于: 请注意,这不是测试有效日期的一种非常好的方法-可能也应该尝试将其解析 为 日期,或者将其解析 为 日期

  • 问题内容: 这样做的原因是“逃脱了”我。 JSON转义为正斜杠,因此哈希序列化为而不是。 为什么? 问题答案: JSON不需要您执行此操作,而是允许您执行此操作。它还允许您将“ \ u0061”用于“ A”,但这不是必需的。在将JSON嵌入标记中时允许帮助,该标记不允许内部字符串出现,如Seb指出的那样。 Microsoft的一些ASP.NET Ajax / JSON API使用此漏洞来添加额外的

  • 问题内容: 我不明白为什么会这样。 JSON转义为正斜杠,因此hash序列化为而不是。 为什么? 问题答案: JSON不需要您执行此操作,而是允许您执行此操作。它还允许您将“\u0061”用于“A”,但这不是必需的。在将JSON嵌入标记中时允许帮助,该标记不允许内部字符串出现,如Seb指出的那样。 Microsoft的一些ASP.NET Ajax/JSONAPI使用此漏洞来添加额外的信息,例如da

  • 问题内容: 我已经使用了很长时间了,到目前为止我还没有遇到任何问题。现在,我正在使用上传脚本,并且尝试在文件上传后返回一些JSON数据。 我有以下代码: 这给了我以下结果: 谁能告诉我为什么加斜杠? 更新 @Quentin说,事情是发生之间和与他的权利。 做一个给我以下结果: 这不是有效的JSON。它还添加,我不知道它来自哪里。 可能对我返回的数据有影响吗? 这是我的js脚本: 问题答案: 谁能告

  • 问题内容: 出于好奇,我试图找出哪一种是在PHP正则表达式模式中使用反斜杠的正确方法: 测试01:(3个反斜线) 测试02:(4个反斜线) 根据下面的文章,4应该是正确的方法,但令我困惑的是两个测试都返回了一个匹配项。如果两者都正确,那么4是首选方式吗? 问题答案: 事实是,您正在使用字符类,因此无论嵌入多少文字反斜杠都无关紧要,它将被视为单个反斜杠。 例如以下两个正则表达式: 就正则表达式引擎而

  • 问题内容: 我需要使用JSON发送日期。日期字符串应如下所示: “ 2013/5/15” 而是按以下方式对其进行转义: “ 2013 \ / 5 \ / 15” 我知道这样做是为了允许在scripts标记内包含json字符串,因为此问题解释了: JSON:为什么要转义正斜杠? 但就我而言,我不需要它。实际上,服务器正在返回错误。服务器没有处理此问题,因此我无法修复该服务器,因此必须在移动客户端代码