PHP が引用符の前にバックスラッシュを追加する理由と 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变量 if(get_magic_quotes_gpc()){ //如果get_magic_quotes_gpc()是打开的 $str=stripslashes($str); //将字符串进行处理 }
この記事は2012年4月25日10時08分03秒に次のように修正されました:
以下の3つの方法があります:この問題を解決するには:
1. PHP 設定ファイル php.ini を変更します
この方法は、サーバーを管理する権限がある場合にのみ適しています。仮想空間を使用する場合は、最後の 2 つの方法のみを使用できます。
PHP 設定ファイル php.ini で、magic_quotes_gpc、magic_quotes_runtime、magic_quotes_sybase をすべてオフに設定します。以下に示すように:
コードをコピーします コードは次のとおりです:
magic_quotes_gpc = Off magic_quotes_runtime = Off magic_quotes_sybase = Off
2 .htaccess ファイルを使用します
この方法は、サーバーが htaccess をサポートしている場合にのみ機能します (現在のサーバーで通常サポートされています)
プログラム内.htaccess ファイルに次の文を追加します。
php_flag magic_quotes_gpc Off
3 この方法は、サーバーの構成を考慮する必要がなく、最も移植性が高いです。 PHP をサポートしている限り。 すべての PHP ファイルの先頭に次のコードを追加します
コードは次のとおりです: 以上がPHP は引用符の前にバックスラッシュを追加します (PHP はバックスラッシュを削除します)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。 if(get_magic_quotes_gpc()){
function stripslashes_deep($value){
$value=is_array($value)?array_map('stripslashes_deep',$value):stripslashes($value);
return $value;
}
$_POST=array_map('stripslashes_deep',$_POST);
$_GET=array_map('stripslashes_deep',$_GET);
$_COOKIE=array_map('stripslashes_deep',$_COOKIE);
$_REQUEST=array_map('stripslashes_deep',$_REQUEST);
}