Php 斜杠问题 ;使用json_编码。为什么以及如何解决?

Php 斜杠问题 ;使用json_编码。为什么以及如何解决?,php,codeigniter,date,json,Php,Codeigniter,Date,Json,为什么用json\u encode输出这个日期(“2011/7/11”)显示(“2011\/7\/11”) 如何将“2011\/7\/11”转换为“2011/7/11” 它将删除所有正向斜杠,并提供所需的结果。在PHP5.4中,您可以使用JSON\u UNESCAPED\u斜杠: echo json_encode("2011/7/11", JSON_UNESCAPED_SLASHES); 否则,您必须进行一些琐碎的后处理 str_replace('\\/', '/', json_encode(

为什么用
json\u encode
输出这个日期
(“2011/7/11”)
显示
(“2011\/7\/11”)

如何将
“2011\/7\/11”
转换为
“2011/7/11”


它将删除所有正向斜杠,并提供所需的结果。

在PHP5.4中,您可以使用
JSON\u UNESCAPED\u斜杠

echo json_encode("2011/7/11", JSON_UNESCAPED_SLASHES);
否则,您必须进行一些琐碎的后处理

str_replace('\\/', '/', json_encode("2011/7/11"));

请注意,
\/
是用JSON表示
/
的有效方法。

“2011\/7\/11”
是有效的JSON字符串。。。所有
/
都必须通过前缀\@Salman A:我该怎么做?怎么样?你打算对输出做什么?为什么不
echo$ok?2011/7/11->删除反斜杠。为什么json_encode不能删除反斜杠?有反斜杠就有有效的json。这有错误:解析错误:语法错误,意外的T_ENCAPSED_和_空格…转义后缺少一个引号。该行应该是
$data\u go=str\u replace(“\”,$data\u go)这段代码只是简单地将单引号关联起来,没有任何内容。Artefactor是对的,它本质上是PHP中的一个bug,json_encode需要这个标志来输出典型的json。json规范不要求转义斜杠。PHP使用的历史逻辑导致magic_quotes_gpc出现在过去。也就是说,它尝试进行半途而废的编码,以避免由于缺少编码而导致的最简单的攻击。在这种情况下,原因是允许web开发人员编码
“”.json\u encode($whatever)。“
其中$whatever可能包含literal
。斜杠的可选编码将
转换为
,从而避免将字符串的其余部分解释为原始HTML的问题。
echo json_encode("2011/7/11", JSON_UNESCAPED_SLASHES);
str_replace('\\/', '/', json_encode("2011/7/11"));