我在GET请求逃逸问题
{"foo":[{"bo1":"*","bob":"*"}]}
发送此字符串,但得到它在PHP作为
{\"foo\":[{\"bo1\":\"*\",\"bob\":"\*\"}]}
我如何得到它作为{"foo":[{"bo1":"*","bob":"*"}]}
发送它作为查询字符串的一部分(或如何通过GET方法发送它来正确获取)? (注意:我无法清理它,因为我无法控制服务器端。)
我在GET请求逃逸问题
{"foo":[{"bo1":"*","bob":"*"}]}
发送此字符串,但得到它在PHP作为
{\"foo\":[{\"bo1\":\"*\",\"bob\":"\*\"}]}
我如何得到它作为{"foo":[{"bo1":"*","bob":"*"}]}
发送它作为查询字符串的一部分(或如何通过GET方法发送它来正确获取)? (注意:我无法清理它,因为我无法控制服务器端。)
禁用magic_quotes:已弃用。如果你不能,你总是可以在输入使用stripslashes:
$goodStr = stripslashes($_GET['badStr']);
你的PHP配置已经启用magic_quotes_gpc的,这会导致所有_GET,_POST和_COOKIE超全局引号和双引号的自动转义。
如果您不需要它,请将其关闭。如果你这样做,那么你应该重写依赖这种行为的代码,因为它是折旧的,并且将在未来的php版本中被删除。
如果可能,您应该在php.ini中将其关闭。无论如何,如果你由于某些原因不能关闭这个,只需使用stripslashes($ your_json);
如果服务器在Apache上运行,请在站点根目录下创建一个名为.htaccess的文件(前导期是文件名的一部分)。将以下代码放入文件中:
php_flag magic_quotes_gpc Off
否则,您需要每次使用stripslashes()。