phpエスケープ文字エスケープ(文字をhtmlエンティティに変換)

1877 ワード

データベースを挿入する前にユーザが入力したコンテンツをエスケープする(sql注入防止)
定義と使用法
htmlspecialchars()関数は、いくつかの事前定義された文字をHTMLエンティティに変換します.
定義済みの文字は次のとおりです.
  • &(和号)は&
  • となります
  • "(二重引用符)は"
  • となる
  • '(一重引用符)は'
  • となります.
  • <(より小さい)は<
  • となる
  • >(より大きい)は>
  • となる
    構文
    htmlspecialchars(string,quotestyle,character-set)

    パラメータ
    説明
    string
    必要です.変換する文字列を指定します.
    quotestyle
    オプション.単一引用符と二重引用符の符号化方法を指定します.
  • ENT_COMPAT-デフォルト.二重引用符のみをエンコードします.
  • ENT_QUOTES-二重引用符と一重引用符をエンコードします.
  • ENT_NOQUOTES-引用符は符号化されません.

  • character-set
    オプション.文字列の値.使用する文字セットを指定します.
  • ISO-8859-1-デフォルト.西欧.
  • ISO-8859-15-西欧(Euro記号およびフランス語、フィンランド語アルファベットを追加).
  • UTF-8-ASCII互換マルチバイト8ビットUnicode
  • cp 866-DOS専用Cyrillic文字セット
  • cp 1251-Windows専用Cyrillic文字セット
  • cp 1252-Windows専用西欧文字セット
  • KOI 8-R-ロシア語
  • GB 2312-簡体字中国語、国家標準文字セット
  • BIG 5-繁体字中国語
  • BIG 5-HKSCS-Big 5香港拡張
  • Shift_JIS-日本語
  • EUC-JP-日本語
  • ヒントとコメント
    ヒント:認識できない文字セットは無視され、ISO-8859-1に置き換えられます.
    <html>
    <body>
    <?php
    $str = "John & 'Adams'";
    echo htmlspecialchars($str, ENT_COMPAT);
    echo "<br />";
    echo htmlspecialchars($str, ENT_QUOTES);
    echo "<br />";
    echo htmlspecialchars($str, ENT_NOQUOTES);
    ?>
    </body>
    </html>

    ブラウザ出力:
    John & 'Adams'
    John & 'Adams'
    John & 'Adams'

    ブラウザでソースコードを表示すると、次のHTMLが表示されます.
    <html>
    <body>
    John &amp; 'Adams'<br />
    John &amp; &#039;Adams&#039;<br />
    John &amp; 'Adams'
    </body>
    </html>