使用json_encode减少问题。为什么以及如何解决它?

时间:2011-07-19 07:20:33

标签: php codeigniter date json

为什么输出此("2011/7/11") json_encode ("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"

{{1}}

2 个答案:

答案 0 :(得分:35)

在PHP 5.4中,您可以使用JSON_UNESCAPED_SLASHES

echo json_encode("2011/7/11", JSON_UNESCAPED_SLASHES);

否则,你必须做一些简单的后处理

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

请注意,\/是在JSON中表示/的有效方式。

答案 1 :(得分:-9)

$data_go = str_replace('\'','', $data_go);

它将删除所有转发斜杠,并为您提供所需的结果..