Слэш с json_encode. Почему и как его решить?

Почему вывод этой даты ("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" 

В PHP 5.4 вы можете использовать JSON_UNESCAPED_SLASHES :

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

В противном случае вам нужно выполнить некоторую тривиальную пост-обработку

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

Заметим, что \/ является допустимым способом представления / в JSON.

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

он удалит все наклонные косые черты и даст вам желаемый результат.