PHP添加了回退斜杠。如何阻止这一点

时间:2014-04-07 19:56:08

标签: php escaping magic-quotes-gpc

背景:我不是一个php程序员,而且我只知道足够让我的iOS应用程序的Web服务部分工作。

我发现我的php正在为我的文本添加反斜杠,当我不想要它时。例如,如果我设置了一些这样的变量:

$directory = "directory/";
$file = "file.jpg"

然后我通过JSON数组输出回我的设备:

$directory . $file 

我得到了

"directory\/file.jpg"

我已经在我的php中运行了get_magic_quotes_gpc并报告了魔术引号被关闭。我是这样做的:

if (get_magic_quotes_gpc()){
//then I send something back in the JSON array to let me know that get_magic_quotes_gpc is on
}

我尝试使用stripslashes()(在原始变量或输出上)并且没有任何变化。

那么如何阻止它这样做呢?因为这意味着我无法告诉我的php删除特定目录中的文件。

提前致谢

2 个答案:

答案 0 :(得分:5)

对元素进行编码时,请执行以下操作:

json_encode($str, JSON_UNESCAPED_SLASHES);

使用JSON_UNESCAPED_SLASHES可以防止添加不需要的斜杠。

答案 1 :(得分:3)

如果您确实想要这样做,请设置the JSON_UNESCAPED_SLASHES option

json_encode ( $value, JSON_UNESCAPED_SLASHES );

但是,当您将JSON注入JavaScript程序时,斜杠不会造成任何伤害并提供保护,防止</script>被注入<script>元素。