我想要做的就是获取xml文件内容,show是在textarea中,如果提交了for,则更新文件内容。我使用这段代码:
$fname = "../data.xml";
if (isset($_POST["update"])) {
$content = $_POST["update"];
$fhandle = fopen($fname,"w");
fwrite($fhandle,$content);
}
$fhandle = fopen($fname,"r");
$content = fread($fhandle,filesize($fname));
fclose($fhandle);
当我按提交时内容会更新,但它会在引号中添加斜杠。例如这段代码:
<?xml version="1.0" encoding="utf-8"?>
变为:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
如果我重新提交:
<?xml version=\\"1.0\\" encoding=\\"utf-8\\"?>
有谁能告诉我我做错了什么?
提前致谢
答案 0 :(得分:11)
这可能是由于Magic Quotes。尝试disable or remove them。
答案 1 :(得分:7)
这是Magic Quotes的一个问题,我们也遇到了它。在对POST输入执行任何操作之前,请在POST输入上使用stripslashes()。
答案 2 :(得分:2)
从magic_quotes_gpc
停用php.ini
。
答案 3 :(得分:2)
应始终禁用魔术行情;这是一个安全风险。 如果您无法编辑配置,或者将代码放在具有无法更改的不同设置的多个服务器上,则需要使用代码进行检查。这个例子在这里找到 - &gt; http://php.robm.me.uk/#toc-MagicQuotes
function remove_magic_quotes($array) {
foreach ($array as $k => $v) {
if (is_array($v)) {
$array[$k] = remove_magic_quotes($v);
} else {
$array[$k] = stripslashes($v);
}
}
return $array;
}
if (get_magic_quotes_gpc()) {
$_GET = remove_magic_quotes($_GET);
$_POST = remove_magic_quotes($_POST);
$_COOKIE = remove_magic_quotes($_COOKIE);
}
答案 4 :(得分:1)
您还可以通过将此行添加到.htaccess文件来禁用魔术引号:
php_flag magic_quotes_gpc Off
答案 5 :(得分:0)