我正在尝试创建一个允许我更轻松地创建HTML文档的应用程序。
除了当我写入文件时它添加反斜杠时,它主要起作用。
<a href=\"google.com\">google</a>
知道如何阻止它这样做吗?
我得到了它的工作!如果我在将它写入文件之前我的stripslashes()它将保存/创建文件没有\ 谢谢你的帮助!
答案 0 :(得分:2)
可能是因为魔术引号打开了,如果你不想每次都使用stripslashes,你应该在php.ini文件中或者像htaccess文件中那样禁用它们这样:
在 php.ini 文件中:
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
或 .htaccess 文件:
php_flag magic_quotes_gpc Off
或者直接在代码中禁用它们:
if (get_magic_quotes_gpc()) {
$process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
while (list($key, $val) = each($process)) {
foreach ($val as $k => $v) {
unset($process[$key][$k]);
if (is_array($v)) {
$process[$key][stripslashes($k)] = $v;
$process[] = &$process[$key][stripslashes($k)];
} else {
$process[$key][stripslashes($k)] = stripslashes($v);
}
}
}
unset($process);
}
来源:http://php.net/manual/en/security.magicquotes.disabling.php
答案 1 :(得分:1)
答案 2 :(得分:1)
此行为是由PHP已弃用的Magic Quotes指令引起的,您的仍处于激活状态,因为默认情况下,在5.4之前的任何默认PHP安装中都是如此。除非您指定长度参数,否则fwrite会查看magic-quotes-runtime以查看它是否会逃脱。
将其关闭,你可以放置
php_flag magic_quotes_gpc Off
在.htaccess文件中,您需要使用apache DSO来允许此选项
如果由于您在共享主机上或出于其他原因而无法执行上述任一操作,请在代码中解决此问题。
function write($resource,$string,$length)
if (get_magic_quotes_gpc()) {
$string = stripslashes($string);
}
return fwrite($resource, $string,$length);
}
答案 3 :(得分:0)
我有一个类似的问题,但有一个$ _POST ['body']变量。这对我有用:
str_replace("\\", "", $_POST['body']);