可能重复:
Why are escape characters being added to the value of the hidden input
所以,我有一个名为Save.php的文件。
它需要两件事:文件和新内容。
您可以通过发送'/Resources/Save.php?file=/Resources/Data.json&contents={"Hey":"There"}'
等请求来使用它。
..但当然,编码网址。 :)为了简单和可读性,我把它全部留下了未编码。
该文件有效,但不是内容..
{"Hey":"There"}
..我找到..
{\"Hey\":\"There\"}
..当稍后通过XHR获取JSON文件时尝试使用JSON.parse
时会引发错误。
要保存内容,我只需使用..
file_put_contents($url, $contents);
我可以做些什么来摆脱反斜杠?
答案 0 :(得分:8)
在PHP.ini中关闭magic_quotes
。
答案 1 :(得分:4)
看起来您已magic_quotes已开启。
如果是这种情况,请将其关闭 - 或使用runtime disabling function
答案 2 :(得分:3)
你可能启用了魔法引号,只能做两件事。禁用php.ini中的魔术引号或在stripslashes()
和$_GET
全局变量上调用$_POST
。
仅供参考,使用$_GET['contents']
而不是$contents
;较新版本的php不会创建$contents
var。
答案 3 :(得分:3)
试试这个:
file_put_contents($url, stripslashes($contents));
答案 4 :(得分:2)
您应该在php.ini配置文件中禁用magic_quotes
。但是,如果无法做到这一点,您还可以使用stripslashes()
函数来摆脱自动转义。
答案 5 :(得分:1)
如果您无法为服务器关闭魔术引号,则需要使用get_magic_quotes_gpc()
检查是否已启用,{}为stripslashes()
。