在PHP 中處理POST 數據時,尤其是在PHP 中在WordPress 環境中,儘管關閉了魔術引號,仍有可能遇到意外的自動轉義行為。當 POST 資料自動轉義時,就會出現這個令人費解的問題,即使據說魔法引號被禁用(get_magic_quotes_gpc() 返回 0)。
深入研究深入研究這個問題,很明顯 WordPress 在觸發這種自動轉義機制中發揮著至關重要的作用。當 WordPress 作為應用程式初始化過程的一部分進行引導時,其程式碼會幹擾 PHP 魔術引號的自然行為。
WordPress 包含攔截請求資料(包括 POST 資料)並執行某些操作的功能,其中之一正在轉義單引號 (')。即使在 php.ini 中禁用了魔術引號,此行為也會延續。
對 WordPress 程式碼庫的仔細檢查發現了報告的錯誤在 WordPress Core Trac 系統下(票號 18322)。此問題與請求資料的錯誤處理有關,從而觸發不必要的轉義。
幸運的是,有一個解決方案可以解決此自動轉義問題困境。 WordPress Codex 建議在對 POST 資料執行任何操作之前使用 stripslashes_deep() 函數「取消轉義」POST 資料。透過使用此功能,您可以有效地覆蓋 WordPress 的自動轉義並以原始格式擷取資料。
要實現此解決方案,請將以下程式碼新增至您的PHP 腳本:
<code class="php">$_GET = array_map('stripslashes_deep', $_GET); $_POST = array_map('stripslashes_deep', $_POST); $_COOKIE = array_map('stripslashes_deep', $_COOKIE); $_SERVER = array_map('stripslashes_deep', $_SERVER); $_REQUEST = array_map('stripslashes_deep', $_REQUEST);</code>
此程式碼從所有超全域變數中刪除斜杠,確保在PHP 中訪問POST 資料時不會自動轉義。
以上是為什麼即使禁用了魔術引號,PHP 中的 POST 資料也會自動轉義?的詳細內容。更多資訊請關注PHP中文網其他相關文章!