Edit report at http://bugs.php.net/bug.php?id=49323&edit=1
ID: 49323 Comment by: paul dot wieland at port80ware dot com Reported by: paul dot wieland at port80ware dot com Summary: json_decode escaped character weirdness Status: Bogus Type: Bug Package: JSON related Operating System: Linux / OSX PHP Version: 5.3.0 New Comment: It definitely works just fine in FireFox. The entire project I was working on (which prompted this bug post) was tested with FF and everything worked fine. Previous Comments: ------------------------------------------------------------------------ [2010-03-25 13:51:23] [email protected] No, I wouldn't suggest you do that. It works perfectly fine in Firefox. Check your own code. I wrote a quick check to make sure it works in FF. Point your browser at: http://progphp.com/test.html Then do a view-source to see what I am doing. ------------------------------------------------------------------------ [2010-03-25 13:35:00] dmitry dot dulepov at gmail dot com Ok, I see the point... However FireFox does not like that escaping. So any AJAX applications that use this generated JSON do not work in FireFox. It is enough to have \/ in JSON to cause JavaScript error in FireFox. Should I report the bug to FireFox than? ------------------------------------------------------------------------ [2010-03-25 13:22:46] [email protected] dmitry, I don't understand your last comment. Of course / is escaped in the json encoded string. According to the spec it is supposed to be. The important part is that when you json_decode() it it comes back without the \ which it does: > php -v PHP 5.3.3-dev (cli) (built: Feb 10 2010 10:53:36) > php -a php > $enc = json_encode(array('test' => 'hello/world')); php > echo $enc; {"test":"hello\/world"} php > var_dump(json_decode($enc)); object(stdClass)#1 (1) { ["test"]=> string(11) "hello/world" } ------------------------------------------------------------------------ [2010-03-25 12:49:26] dmitry dot dulepov at gmail dot com No, it is definitely NOT fixed. php -v says: ================= PHP 5.3.1 (cli) (built: Feb 15 2010 17:30:23) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies ================= Test file: ================= <?= json_encode(array('test' => 'hello/world')) . chr(10); ================= Result: ================= {"test":"hello\/world"} ================= ------------------------------------------------------------------------ [2009-08-22 10:11:12] [email protected] Definitely fixed in 5.3 scott-mbp:~ scott$ php /tmp/test.php string(10) "Black/Gray" string(10) "Black/Gray" ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/bug.php?id=49323 -- Edit this bug report at http://bugs.php.net/bug.php?id=49323&edit=1
