Alright, here goes. post.php <?php $data="data=This is my data & it is really great"; $json_data=json_encode($data);
$request ="GET /test.php HTTP/1.0\n"; $request.="Host: something.com\n"; $request.="Content-Type: application/x-www-form-urlencoded\n" $request.="Content-Length: ".strlen($json_data)."\n"; $request.="\n"; $fsock=fsockopen("http://server.com ",80); fwrite($fsock,$request); $response=fread($fsock,2048); echo $response; ?> test.php: <?php var_dump($_POST); ?> Under php-5.2.1, the output would be: array(4) { ["data"]=> string(16) "This is my data " ["it is really great"]=> string(0) "" } With this patch it would be: array(4) { ["data"]=> string(42) "This is my data \u0026 it is really great" } Tyler -----Original Message----- From: Antony Dovgal [mailto:[EMAIL PROTECTED] Sent: Friday, April 27, 2007 3:59 PM To: Tyler Lawson Cc: internals@lists.php.net Subject: Re: [PHP-DEV] JSON ampersand patch On 04/27/2007 11:39 PM, Tyler Lawson wrote: > Hello, > > I hope this is the right place for this, as I'd like to post a patch for > your consideration to the way the JSON handles ampersands. I have had > problems sending JSON data back and forth over POST requests, where an > ampersand separates variables. This patch will convert "&" into "\u0026", > which will allow ampersands to travel freely and be parsed by any valid JSON > decoder. I believe a short reproduce case would explain it better. > This has been applied against php-5.2.1 > > --- json.c 2007-01-12 07:17:32.000000000 -0500 > +++ my_json.c 2007-04-27 15:12:44.000000000 -0400 > @@ -301,6 +301,11 @@ > smart_str_appendl(buf, "\\t", 2); > } > break; > + case '&': > + { > + smart_str_appendl(buf, "\\u0026", 6); > + } > + break; > default: > { > if (us < ' ' || (us & 127) == us) > > > Tyler > -- Wbr, Antony Dovgal -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php