ホームページ  >  記事  >  バックエンド開発  >  PHP は引用符の前にバックスラッシュを追加します (PHP はバックスラッシュを削除します)_PHP チュートリアル

PHP は引用符の前にバックスラッシュを追加します (PHP はバックスラッシュを削除します)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:12:59805ブラウズ

一般のスペースプロバイダーが提供するサーバースペースのデフォルトのPHPコマンドmagic_quotes_gpcはon、つまりオンになっています。この時点で、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 = オフ
magic_quotes_runtime = オフ
magic_quotes_sybase = オフ

2 .htaccess ファイルを使用します
この方法は、サーバーが htaccess をサポートしている場合にのみ機能します (現在のサーバーでは通常サポートされています)

プログラム ディレクトリの .htaccess ファイルに次の文を追加します:

php_flag magic_quotes_gpc オフ

3 コード内のシールド
この方法は最も移植性が高く、PHP をサポートしている限り、サーバーの構成を考慮する必要はありません。

すべての PHP ファイルの先頭に次のコードを追加します

コードをコピーします コードは次のとおりです:
if(get_magic_quotes_gpc()){
functiontripslashes_deep($value){
$value=is_array($value)?array_map('stripslashes_deep',$ value ):stripslashes ($value);
return $value', $_COOKIE)
$_REQUEST=array_map('stripslashes_deep',$_REQUEST);



http://www.bkjia.com/PHPjc/313536.html

www.bkjia.com
tru​​ehttp://www.bkjia.com/PHPjc/313536.html

技術記事一般的なスペースプロバイダーが提供するサーバースペースのデフォルトのPHPコマンドmagic_quotes_gpcはon、つまりオンになっています。この時点で、stripslashes() 関数を使用して、自動的に追加されたバックスラッシュを削除できます。使用してください...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。