Как json_encode без слэшей?

Я кодирую это так..

json_encode($array_list, JSON_UNESCAPED_SLASHES)

Пример: \n превращается в \\n, \r\n превращается в \\r\\n

Но он все еще избегает косых черт! Что не так и как это исправить? Спасибо.


person unwise guy    schedule 08.02.2013    source источник
comment
JSON_UNESCAPED_SLASHES доступен с PHP5.4, какую версию вы используете?   -  person Dr.Molle    schedule 08.02.2013


Ответы (2)


Я думаю, это из-за single and double quotes, см. примеры

$arr = array("\n\r");
echo json_encode($arr,JSON_UNESCAPED_SLASHES);  // ["\n\r"]

$arr = array('\n\r');
echo json_encode($arr,JSON_UNESCAPED_SLASHES);  //["\\n\\r"]

рабочий пример http://codepad.viper-7.com/LvWMhq

person Yogesh Suthar    schedule 08.02.2013
comment
Я поражен, что вы поняли это без того, чтобы он фактически опубликовал $arr. Очень впечатлен +1 - person John V.; 08.02.2013

Если это вызывает беспокойство при выполнении каких-либо запросов MySQL, вы можете использовать его следующим образом:

mysql_real_escape_string(json_encode($array))

Не нужно ничего экранировать в самом $array до этого момента, просто позвольте mysql_real_escape_string экранировать строку json_encoded.

person crmpicco    schedule 03.11.2015