PHP htmlspecialchars()関数
例
定義済みの文字 "<" (小なり) と ">" (大なり) を HTML エンティティに変換します:
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
上記コードの HTML 出力は次のとおりです(ソースコードを表示):
<!DOCTYPE html>
<html>
<body>
This is some <b>bold</b> text.
</body>
</html>
上記コードのブラウザー出力は次のとおりです:
This is some <b>bold</b> text.
例を実行 »
定義と使い方
htmlspecialchars() 関数は、いくつかの定義済み文字を HTML エンティティに変換します。
定義済み文字は次のとおりです:
- & (アンパサンド) は & になります
- " (二重引用符) は " になります
- ' (単一引用符) は ' になります
- < (小なり) は < になります
- > (大なり) は > になります
ヒント:特別な HTML エンティティを文字に戻すには、次を使用します htmlspecialchars_decode()関数。
構文
htmlspecialchars(string,flags,character-set,double_encode)
| パラメータ | 説明 |
|---|---|
| string | 必須。変換する文字列を指定します。 |
| flags | 省略可能。引用符、無効なエンコーディングの処理方法、および使用するドキュメントタイプを指定します。 使用可能な引用符のタイプ:
無効なエンコーディング:
使用するドキュメントタイプを指定する追加のフラグ:
|
| character-set | 省略可能。使用する文字セットを指定する文字列です。 許可される値:
注:PHP 5.4 より前のバージョンでは、認識できない文字セットは無視され、ISO-8859-1 に置き換えられます。PHP 5.4 以降は、認識できない文字セットは無視され、UTF-8 に置き換えられます。 |
| double_encode | 省略可能。既存の HTML エンティティをエンコードするかどうかを指定するブール値です。
|
技術詳細
| 戻り値: | 変換された文字列を返します。 もしstring無効なエンコーディングが含まれている場合は、ENT_IGNORE または ENT_SUBSTITUTE フラグが設定されていない限り、空の文字列を返します。 |
|---|---|
| PHP バージョン: | 4+ |
| 更新履歴: | PHP 5 では、character-setパラメータのデフォルト値が UTF-8 に変更されました。 PHP 5.4 では、ENT_SUBSTITUTE、ENT_DISALLOWED、ENT_HTML401、ENT_HTML5、ENT_XML1、および ENT_XHTML が追加されました。 PHP 5.3 では、ENT_IGNORE が追加されました。 PHP 5.2.3 では、double_encodeパラメータが追加されました。 PHP 4.1 では、character-setパラメータが追加されました。 |
その他の例
例 1
いくつかの定義済み文字を HTML エンティティに変換します:
$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); //デフォルトでは、二重引用符のみをエンコードします
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); //二重引用符と単一引用符をエンコードします
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); //引用符をエンコードしません
上記コードの HTML 出力は次のとおりです(ソースコードを表示):
<!DOCTYPE html>
<html>
<body>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'
</body>
</html>
上記コードのブラウザー出力は次のとおりです:
Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
例を実行 »
例 2
二重引用符を HTML エンティティに変換します:
$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); //二重引用符と単一引用符をエンコードします
;上記コードの HTML 出力は次のとおりです(ソースコードを表示):
<!DOCTYPE html>
<html>
<body>
I love "PHP".
</body>
</html>
上記コードのブラウザー出力は次のとおりです:
I love "PHP".
例を実行 »
PHP String リファレンスマニュアル その他の拡張