TECH I.S.

PHP htmlspecialchars() 関数

❮ PHP 文字列リファレンス

定義済みの文字 "<" (より小さい) と ">" (より大きい) を HTML エンティティに変換します。

<?php $str = "This is some <b>bold</b> text."; echo htmlspecialchars($str); ?>

上記のコードの HTML 出力は次のようになります (ソースを表示):

<!DOCTYPE html> <html> <body> This is some &lt;b&gt;bold&lt;/b&gt; text. </body> </html>

上記のコードのブラウザー出力は次のようになります。

This is some <b>bold</b> text.

自分で試してみる »


定義と使用法

htmlspecialchars() 関数は、定義済みの文字を HTML エンティティに変換します。

定義済みの文字は次のとおりです。

  • & (アンパサンド) は &amp; になります。
  • " (ダブル クォーテーション) は &quot; になります。
  • ' (シングル クォーテーション) は &#039; になります。
  • < (より小さい) は &lt; になります。
  • > (より大きい) は &gt; になります。

ヒント:特別な 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 &amp; 'Tarzan'<br> Jane &amp; &#039;Tarzan&#039;<br> Jane &amp; '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 &quot;PHP&quot;. </body> </html>

上記のコードのブラウザー出力は次のようになります。

I love "PHP".

自分で試してみる »


❮ PHP 文字列リファレンス


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細