ホームページ >バックエンド開発 >PHPチュートリアル >PHP でバックスラッシュを削除する方法と PHP マジック クオートを閉じる 3 つの方法
PHP でバックスラッシュを削除する方法と php マジック クオートをオフにする 3 つの方法
一般的なスペース プロバイダーが提供するサーバー スペースのデフォルトの PHP コマンド magic_quotes_gpc はオン、つまりオンになっています。この時点で、stripslashes() 関数を使用して、自動的に追加されたバックスラッシュを削除できます。
使用法は次のとおりです。たとえば、文字列を含む変数は $str で、次に、stripslashes() 関数を使用して文字列を処理します。stripslashes($str)、出力結果はバックスラッシュを削除します。
出力結果にバックスラッシュが含まれている場合は、stripslashes() 関数を使用して出力内容 ($str=stripslashes($str)) を処理し、バックスラッシュを削除して保存できます。しかし、別の問題があります。つまり、ローカルの PHP コマンド magic_quotes_gpc がオフになっているため、この関数を使用すると、通常のバックスラッシュが削除されてしまいます。
これは私たちが望んでいることではありません。解決策は、関数 get_magic_quotes_gpc() を使用してそれを検出することです。開いた状態の場合、バックスラッシュは削除されます。閉じた状態の場合、バックスラッシュは削除されません。
プログラム コードは次のとおりです。
$str=$_POST["str"]; //读取str的内容赋值给$str变量<br />if(get_magic_quotes_gpc()){ //如果get_magic_quotes_gpc()是打开的<br /> $str=stripslashes($str); //将字符串进行处理<br />}
この問題を解決するには、次の 3 つの方法があります。
1. PHP 構成を変更します。 file php.ini
この方法は、サーバーを管理する権限がある場合にのみ適しています。仮想空間を使用する場合は、最後の 2 つの方法のみを使用できます。
PHP 設定ファイル php.ini で、magic_quotes_gpc、magic_quotes_runtime、magic_quotes_sybase をすべてオフに設定します。
は次のとおりです。
magic_quotes_gpc = Off<br /> <br />magic_quotes_runtime = Off<br /> <br />magic_quotes_sybase = Off
2. .htaccess ファイルを使用します
この方法は、サーバーが htaccess Now サーバーをサポートしている場合にのみ機能します。通常は
をサポートします。プログラム ディレクトリの .htaccess ファイルに次の文を追加します:
php_flag magic_quotes_gpc Off
3. コード内の
をシールドします。この方法は最も移植性が高く、PHP をサポートしていればサーバー構成を考慮せずに使用できます。
すべての PHP ファイルの先頭に次のコードを追加します
if(get_magic_quotes_gpc()){<br />function stripslashes_deep($value){<br />$value=is_array($value)?array_map('stripslashes_deep',$value):stripslashes($value);<br />return $value;<br />}<br />$_POST=array_map('stripslashes_deep',$_POST);<br />$_GET=array_map('stripslashes_deep',$_GET);<br />$_COOKIE=array_map('stripslashes_deep',$_COOKIE);<br />$_REQUEST=array_map('stripslashes_deep',$_REQUEST);<br />}