Edit report at http://bugs.php.net/bug.php?id=49323&edit=1

 ID:               49323
 Updated by:       [email protected]
 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:

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.


Previous Comments:
------------------------------------------------------------------------
[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"



------------------------------------------------------------------------
[2009-08-21 19:35:42] paul dot wieland at port80ware dot com

Very sorry, the virtualhost I was using was not configured to use 

version 5.3.0 - it is using 5.2.1 instead



So I am not sure if this is an old problem with 5.2.1 that has been 

solved, or it still exists with 5.3.0

------------------------------------------------------------------------


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

Reply via email to