ホームページ  >  記事  >  バックエンド開発  >  PHPでエスケープを削除する方法

PHPでエスケープを削除する方法

巴扎黑
巴扎黑オリジナル
2016-11-24 14:34:482195ブラウズ

string addedslashes (string str)

データベースクエリステートメントなどの特定の文字の前にバックスラッシュを追加した文字列を返します。

これらの文字は一重引用符 (')、二重引用符 (")、バックスラッシュ (\)、および NUL (NULL 文字) です。

スラッシュは逆の効果を持ちます。mysql や GET および POST データを処理する場合、多くの場合、変更が必要になります。データは引用符がエスケープされます。

PHP には、' (一重引用符)、" (二重引用符)、\ (バックスラッシュ) 文字、および NULL 文字を自動的にエスケープできる 3 つの設定があります。

PHP はこれをマジック クオートと呼びます。これら 3 つの設定は、HTTP リクエスト データ (GET、POST、COOKIE) に影響を与える magic_quotes_gpc です。実行時に変更することはできません。 PHP のデフォルト値は on です。

magic_quotes_runtime オンにすると、データベースやテキスト ファイルなどの外部ソースからデータを取得して返すほとんどの関数は、バックスラッシュでエスケープされたデータを返します。このオプションは実行時に変更でき、PHP のデフォルト値はオフです。

magic_quotes_sybase オンにすると、バックスラッシュの代わりに一重引用符を使用して一重引用符がエスケープされます。このオプションは、magic_quotes_gpc を完全にオーバーライドします。両方のオプションを同時にオンにすると、一重引用符は " にエスケープされます。二重引用符、バックスラッシュ、NULL 文字はエスケープされません。特殊記号は自動的にエスケープされると便利ですが、これによりプログラムの効率が低下し、プログラムが複雑になります。移植性が面倒です

サーバーのini設定がわからない場合は、get_magic_quotes_gpc()、get_magic_quotes_runtime()、またはini_get()を呼び出してステータスを検出する必要があります

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。