为什么用 json_encode
输出这个日期 ("2011/7/11")
显示 ("2011\/7\/11")
?
如何将 "2011\/7\/11"
转换为 "2011/7/11"
?
$data_go = '2011/7/11';
$ddmmyyy='([1-9][\d]{3})[- \/.]([0-1][\d])[- \/.]([0-3][\d])';
if(preg_match("/$ddmmyyy$/", $data_go)) {
$year = substr($data_go,0,4);
$month = substr($data_go,5,2);
$day = substr($data_go,8,2);
$j2g = $this->convert_date->JalaliToGregorian($year, $month, $day);
$ok = $j2g[0]."/".$j2g[1]."/".$j2g[2];
}else {
return FALSE;
}
echo json_encode($ok); // output "2011\/7\/11"
最佳答案
在 PHP 5.4 中,您可以使用 JSON_UNESCAPED_SLASHES
:
echo json_encode("2011/7/11", JSON_UNESCAPED_SLASHES);
否则,你必须做一些琐碎的后期处理
str_replace('\\/', '/', json_encode("2011/7/11"));
请注意,\/
是在 JSON 中表示 /
的有效方式。
关于php - json_encode 的斜线问题。为什么以及如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6743554/