2011-01-07 102 views
0

我在GET请求逃逸问题

{"foo":[{"bo1":"*","bob":"*"}]} 

发送此字符串,但得到它在PHP作为

{\"foo\":[{\"bo1\":\"*\",\"bob\":"\*\"}]} 

我如何得到它作为{"foo":[{"bo1":"*","bob":"*"}]}发送它作为查询字符串的一部分(或如何通过GET方法发送它来正确获取)? (注意:我无法清理它,因为我无法控制服务器端。)

回答

0

你的PHP配置已经启用magic_quotes_gpc的,这会导致所有_GET,_POST和_COOKIE超全局引号和双引号的自动转义。

如果您不需要它,请将其关闭。如果你这样做,那么你应该重写依赖这种行为的代码,因为它是折旧的,并且将在未来的php版本中被删除。

如果可能,您应该在php.ini中将其关闭。无论如何,如果你由于某些原因不能关闭这个,只需使用stripslashes($ your_json);

0

如果服务器在Apache上运行,请在站点根目录下创建一个名为.htaccess的文件(前导期是文件名的一部分)。将以下代码放入文件中:

php_flag magic_quotes_gpc Off 

否则,您需要每次使用stripslashes()。