❮ PHP 文字列リファレンス
例
定義済みの文字 "<" (より小さい) と ">" (より大きい) を HTML エンティティに変換します。
<?php
$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 |
オプション。引用符、無効なエンコード、および使用されるドキュメント タイプの処理方法を指定します。 利用可能な引用スタイルは次のとおりです。
- ENT_COMPAT - デフォルト。二重引用符のみをエンコードします
- ENT_QUOTES - 二重引用符と単一引用符をエンコードします
- ENT_NOQUOTES - 引用符をエンコードしません
無効なエンコーディング:
- ENT_IGNORE - 関数が空の文字列を返す代わりに、無効なエンコーディングを無視します。セキュリティに影響する可能性があるため、避ける必要があります。
- ENT_SUBSTITUTE - 指定された文字セットの無効なエンコードを Unicode 置換文字 U+FFFD (UTF-8) または &#FFFD; に置き換えます。空の文字列を返す代わりに。
- ENT_DISALLOWED - 指定された doctype で無効なコード ポイントを Unicode 置換文字 U+FFFD (UTF-8) または &#FFFD; に置き換えます。
使用する doctype を指定するための追加フラグ:
- ENT_HTML401 - デフォルト。コードを HTML 4.01 として扱う
- ENT_HTML5 - コードを HTML 5 として処理する
- ENT_XML1 - コードを XML 1 として処理する
- ENT_XHTML - コードを XHTML として処理する
|
キャラクターセット |
オプション。使用する文字セットを指定する文字列。 許可される値は次のとおりです。
- UTF-8 - デフォルト。 ASCII 互換のマルチバイト 8 ビット Unicode
- ISO-8859-1 - 西ヨーロッパ
- ISO-8859-15 - 西ヨーロッパ (ユーロ記号 + ISO-8859-1 にないフランス語とフィンランド語の文字を追加)
- cp866 - DOS 固有のキリル文字セット
- cp1251 - Windows 固有のキリル文字セット
- cp1252 - 西ヨーロッパ言語用の Windows 固有の文字セット
- KOI8-R - ロシア語
- BIG5 - 主に台湾で使用される繁体字中国語
- GB2312 - 簡体字中国語、国家標準文字セット
- BIG5-HKSCS - 香港の拡張機能を備えた Big5
- Shift_JIS - 日本語
- EUC-JP - 日本語
- MacRoman - Mac OS で使用されていた文字セット
ノート:PHP 5.4 より前のバージョンでは、認識されない文字セットは無視され、ISO-8859-1 に置き換えられます。 PHP 5.4 以降では無視され、UTF-8 に置き換えられます。
|
double_encode |
オプション。既存の html エンティティをエンコードするかどうかを指定するブール値。
- TRUE - デフォルト。すべてを変換します
- FALSE - 既存の html エンティティをエンコードしません
|
技術的な詳細
戻り値: |
変換された文字列を返します
もし弦無効なエンコーディングが含まれている場合、ENT_IGNORE または ENT_SUBSTITUTE フラグが設定されていない限り、空の文字列が返されます |
PHP バージョン: |
4+ |
変更ログ: |
PHP 5.6 - のデフォルト値を変更しましたキャラクターセットパラメータをデフォルトの文字セットの値に変更します (構成内)。
PHP 5.4 - のデフォルト値を変更しましたキャラクターセットパラメータを 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 - を追加キャラクターセットパラメータ。 |
その他の例
例
一部の定義済み文字を HTML エンティティに変換します。
<?php
$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // Will only convert double quotes
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Does not convert any quotes
?>
上記のコードの HTML 出力は次のようになります (ソースを表示):
<!DOCTYPE html>
<html>
<body>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'
</body>
</html>
上記のコードのブラウザー出力は次のようになります。
Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
自分で試してみる »
例
二重引用符を HTML エンティティに変換します。
<?php
$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
?>
上記のコードの HTML 出力は次のようになります (ソースを表示):
<!DOCTYPE html>
<html>
<body>
I love "PHP".
</body>
</html>
上記のコードのブラウザー出力は次のようになります。
I love "PHP".
自分で試してみる »
❮ PHP 文字列リファレンス