ホームページ  >  記事  >  バックエンド開発  >  PHP関数の詳しい説明:magic_quotes_gpc()

PHP関数の詳しい説明:magic_quotes_gpc()

WBOY
WBOYオリジナル
2016-07-25 08:46:402455ブラウズ
PHPシステム関数であるPHP環境変数magic_quotes_gpcの値を取得します。
構文:long get_magic_quotes_gpc(void);
戻り値:long integer
この関数は何をするのでしょうか?
この関数は、PHP 環境設定の変数 magic_quotes_gpc (GPC、Get/Post/Cookie) の値を取得します。 0 を返すとこの機能がオフになることを意味し、1 を返すとこの機能がオンになることを意味します。 magic_quotes_gpc をオンにすると、PHP 設定ファイル内のすべての ' (一重引用符)、” (二重引用符)、(バックスラッシュ) および null 文字はバックスラッシュを含むオーバーフロー文字に自動的に変換されます。これをオンにすると、外部からインポートされたデータ (データベースやファイルを含む) のオーバーフロー文字にバックスラッシュが自動的に追加されます。文字列には複数のバックスラッシュが含まれるため、サーバー設定に関係なくプログラムを正常に実行するには、set_magic_quotes_runtime() と get_magic_quotes_runtime() を使用して php.ini ファイル内の magic_quotes_runtime ステータスを設定および検出する必要があります。 、プログラムの先頭で get_magic_quotes_runtime を使用して設定のステータスを検出し、手動で処理するかどうかを決定するか、先頭で set_magic_quotes_runtime(0) を使用します (または自動エスケープが必要ない場合は、この設定をオフにします)。
magic_quotes_gpc は、GPC によって送信されるデータ (get、post、cookie) の '' にバックスラッシュを自動的に追加するかどうかを設定します。システム設定は get_magic_quotes_gpc() を使用して検出できます。この設定がオンになっていない場合は、addslashes() 関数を使用して追加できます。この関数の機能は、データベース クエリ ステートメントで必要な場合に特定の文字の前にバックスラッシュを追加することです。これらの文字は、一重引用符 (')、二重引用符 (")、バックスラッシュ ()、および NUL (NULL 文字) です。
一般的な使用法は次のとおりです:
if(!get_magic_quotes_gpc()){addslashes( $prot);}
string addedlashes (string str) の紹介に、get_magic_quotes_gpc の使い方と機能を説明する文があります。デフォルトでは、PHP 命令の magic_quotes_gpc はオンになっており、主にすべての GET、POST、およびCOOKIE データは、addlashes() を自動的に実行します。magic_quotes_gpc によってエスケープされた文字列に対しては addlashes() を使用しないでください。これは、関数 get_magic_quotes_gpc() を使用してこの状況を検出できるためです。 実際、この関数は PHP が自動的に addslashes を呼び出したかどうかを判断するためのものです:
最土团购系统里のmagic_gpc
  1. define('SYS_MAGICGPC', get_magic_quotes_gpc());

  2. $_ POST = magic_gpc($_POST);

  3. function magic_gpc( $string) {
  4. if(SYS_MAGICGPC) {
  5. if(is_array($string)) {
  6. foreach( $string as $key => $val) {
  7. $string[$key] = magic_gpc($ val);
  8. }
  9. } else {
  10. $string =スラッシュ($string);
  11. }
  12. }
  13. return $string;
  14. }

  15. echo 'get_magic_quotes_gpcの值: '.get_magic_quotes_gpc ();
  16. echo '
    ';
  17. echo '直接出POST变量: '.$_POST['nowmagic'];
  18. echo '
    ';
  19. echo '经过magic_gpc处処理: '.magic_gpc($_POST['nowmagic']);
  20. ?>







  21.    

复制帽

程序出:
get_magic_quotes_gpcの値:1直接出力ポスト変数:no'wamagic.net magic_gpcで処理:no'wamagic.netanother例:
  1. <?php

  2. echo 'get_magic_quotes_gpc:' .get_magic_quotes_ gpc( ; : '.addslashes($_POST['nowmagic']) }
  3. else {
    M $ nowamagic = $ _post ['nowamagic'] " " name="nowamagic" value="no'wamagic.net">


  4. コードをコピー


  5. プログラム出力:

  6. get_magic_quotes_gpc: 1 POST変数を直接出力: no'wamagic.netaddslashes: no'wa\magic.net 処理後の出力: no'wamagic.net


  7. 基礎知識



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