[英]PHP how to prevent PHP from escaping html fopen fwrite
我正在嘗試開發一個使我能夠更輕松地創建HTML文檔的應用程序。
除了我在寫入文件時添加反斜杠外,它幾乎可以正常工作。
<a href=\"google.com\">google</a>
知道如何阻止它執行此操作嗎?
我懂了! 如果我在將其寫入文件之前將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
此行為是由PHP棄用的Magic Quotes指令引起的,您的仍被激活,因為在5.4之前的任何默認PHP安裝中默認情況下都是如此。 除非您指定長度參數,否則fwrite將查看magic-quotes-runtime以查看它是否轉義。
將其關閉,您可以放置
php_flag magic_quotes_gpc Off
在.htaccess文件中,您需要使用apache DSO允許此選項
或者您可以在php.ini中禁用它
如果由於共享主機或其他原因而無法執行上述任何一項操作,請使用代碼解決。
function write($resource,$string,$length)
if (get_magic_quotes_gpc()) {
$string = stripslashes($string);
}
return fwrite($resource, $string,$length);
}
我有一個類似的問題,但是有一個$ _POST ['body']變量。 這對我有用:
str_replace("\\", "", $_POST['body']);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.