【PHP・文字列関数】 htmlentitiles/htmlspecialchars関数の使い方

アイキャッチ画像 PHP
PHP
この記事は約4分で読めます。
Recommended Articles

【PHP】 htmlentitiles/htmlspecialchars関数の使い方

htmlentitiles関数の使い方(HTMLエンティティに変換する)

php3~ で使用できます。

htmlentitiles関数 : 書式
書式:
 htmlentitiles(① [, ② [, ③ [, ④
]]])

引数:

 ①文字列
 ②クォーテーションの変換設定(既定値:ENT_COMPAT)(省略化)
   ENT_COMPATの場合は、ダブルクォーテーションのみを変換します
   ENT_NOQUOTESの場合は、クォーテーションを処理しません
   ENT_QUOTESの場合のみ、シングルクォーテーションを変換します

 ③文字コード(省略化)
 ④Offの場合は既存のHTMLエンティティをエンコードしません(省略化)

戻り値:
 HTMLエンティティに変換された文字列
 htmlentitiles関数は適用可能な文字をすべてHTMLエンティティに変換します。逆の処理を行う場合は、html_entity_decode関数を使用します。

htmlentitiles関数 : 使用例

  • 文字列をHTMLエンティティに変換する
    $str = "\"123\"'abc'";
    $str = htmlentitiles($str);

    変数$strにセットされる値 → "123"'abc'

  • シングルコーテーションを含めてHTMLエンティティに変換する
    $str = "\"123\"'abc'";
    $str = htmlentitiles($str, ENT_QUOTES);

    変数 $str にセットされる値 → "123"'abc&#039

html_entity_decode関数 : 使用例

  • HTMLエンティティをデコードする
    $str = ""123"";
    echo html_entity_decode($str); →「"123"」を出力
 

htmlspecialchars関数の使い方(特殊文字をHTMLエンティティに変換する)

php3~ で使用できます。

htmlspecialchars関数 : 書式
書式:
 htmlspecialchars(① [, ② [, ③ [, ④]]])

引数:

 ①文字列
 ②クォーテーションの変換設定(既定値:ENT_COMPAT)(省略化)
   ENT_COMPATの場合は、ダブルクォーテーションのみを変換します
   ENT_NOQUOTESの場合は、クォーテーションを処理しません
   ENT_QUOTESの場合のみ、シングルクォーテーションを変換します
 ③文字コード(省略化)
 ④Offの場合は既存のHTMLエンティティをエンコードしません(省略化)

戻り値:
 HTMLエンティティに変換された文字列
 htmlspecialchars関数は特殊文字をHTMLエンティティに変換します。変換対象の文字と変換結果は以下の通りです。

変換前変換後
&&
""
''
<&lt;
>&gt;

 この関数はタグを無効化するときなどに使われます。ファームからの入力値にタグが含まれており、そのままデータベースに追加したり表示させたくない場合は、この関数でHTMLエンティティに変換します。

htmlspecialchars関数 : 使用例

  • シングルクォーテーションを含めてHTMLエンティティに変換する
    $a = "'AA'";
    $b = htmlspecialchars($a, ENT_QUOTES); →$bに「&#039;AA&#039」をセット

    <解説>
     セキュリティ対策の意味でhtmlspecialchars関数を使用する場合、ENT_QUOTESを指定してシングルクォーテーションを含めてHTMLエンティティに変換します。

関連リンク

PHPトップページ
PHP入門 & 関数リファレンス
PHPの初心者からベテランまで活用できるページです。初めての方はもちろん、もう一度基礎から学びなおしたい方は、基礎知識のページを順に読んで理解しましょう。ベテランの方向けには、関数の書式・パラメーターを調べられる構成になっています。PHPプログラム作成時にご活用下さい。
Recommended Articles