开发者

PHP Json Encoding w/ quote escaping in 5.2?

开发者 https://www.devze.com 2022-12-22 12:09 出处:网络
I\'m playing with the flickr api and php.I want to pass some information from PHP to Javascript through Ajax.I have the following code:

I'm playing with the flickr api and php. I want to pass some information from PHP to Javascript through Ajax. I have the following code:

json_encode($pics);

whi开发者_StackOverflow中文版ch results in the following example JSON string:

[{"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 has problems with this, however, due to the unescaped single-quote in the second item ("can't deny").

I want to use the function json_encode with the options parameter to make it strip the quotes, but that's only available in PHP 5.3, and I'm running 5.2 (not my server). Is there a fast way to run through the entire array and escape everything before encoding it in Json? I looked for a way to do this, but it all seems to deal with encoding it as the data is generated, something I cannot do as I'm not the one generating the data.

If it helps, I'm currently using the following javascript after the ajax request:

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


Have you considered using JSON2 instead of eval()? Details here.


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


You'll have to do a (recursive) foreach to walk through the array and manipulate them manually. You can do a str_replace, but addslashes works just as fine (and addcslashes is even better.)

0

精彩评论

暂无评论...
验证码 换一张
取 消