PHP Json кодирование с кавычками в 5.2? - PullRequest
1 голос
/ 11 марта 2010

Я играю с API Flickr и PHP. Я хочу передать некоторую информацию из PHP в Javascript через Ajax. У меня есть следующий код:

json_encode($pics);

, что приводит к следующему примеру строки JSON:

[{"id":"4363603591","title":"blue, white and red...another seattle view","date_faved":"1266379499"},{"id":"4004908219","title":"\u201cI just told you my dreams and you made me see that I could walk into the sun and I could still be me and now I can't deny nothing lasts forever.\u201d","date_faved":"1259987670"}]

Javascript имеет проблемы с этим, однако, из-за неэкранированной одинарной кавычки во втором элементе («не могу отрицать»).

Я хочу использовать функцию json_encode с параметром options, чтобы убрать кавычки, но это доступно только в PHP 5.3, и я использую 5.2 (не мой сервер). Есть ли быстрый способ пройти через весь массив и экранировать все, прежде чем кодировать его в Json? Я искал способ сделать это, но все, похоже, имеет дело с кодированием по мере генерирования данных, что я не могу сделать, поскольку я не тот, кто генерирует данные.

Если это поможет, я сейчас использую следующий javascript после запроса ajax:

var photos = eval('(' + resptxt + ')');  

Ответы [ 3 ]

2 голосов
/ 11 марта 2010

Рассматривали ли вы использование JSON2 вместо eval()? Подробности здесь .

1 голос
/ 11 марта 2010

str_replace ('\' ',' \\ '', json_encode ($ pics))

0 голосов
/ 11 марта 2010

Вам придется выполнить (рекурсивный) foreach, чтобы пройти через массив и манипулировать ими вручную. Вы можете сделать str_replace, но addlashes работает так же хорошо (а addcslashes еще лучше.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...