逃避问题

时间:2011-01-07 14:14:52

标签: php json http urlencode

我在GET请求中发送此字符串

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

但是以PHP格式获取

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

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

3 个答案:

答案 0 :(得分:1)

禁用magic_quotes:已弃用。如果不能,您可以始终在输入上使用stripslashes

$goodStr = stripslashes($_GET['badStr']);

答案 1 :(得分:0)

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

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

如果可能的话,你应该在php.ini中解决它。

无论如何,如果你出于某些原因无法关闭,只需使用 stripslashes($ your_json);

答案 2 :(得分:0)

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

php_flag magic_quotes_gpc Off

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