TECH I.S.

PHP htmlentities() 関数

❮ PHP 文字列リファレンス

一部の文字を HTML エンティティに変換します。

<?php $str = '<a href="https://www.w3schools.com">Go to w3schools.com</a>'; echo htmlentities($str); ?>

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

&lt;a href=&quot;https://www.w3schools.com&quot;&gt;Go to w3schools.com&lt;/a&gt;

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

<a href="https://www.w3schools.com">Go to w3schools.com</a>

自分で試してみる »


定義と使用法

htmlentities() 関数は、文字を HTML エンティティに変換します。

ヒント:HTML エンティティを文字に戻すには、html_entity_decode()関数。

ヒント:使用get_html_translation_table()htmlentities() で使用される変換テーブルを返す関数。


構文

htmlentities(string,flags,character-set,double_encode)

パラメータ値

パラメータ

説明

string 必要。変換する文字列を指定します
フラグ オプション。引用符、無効なエンコード、および使用されるドキュメント タイプの処理方法を指定します。

利用可能な引用スタイルは次のとおりです。

  • 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 = "Albert Einstein said: 'E=MC²'"; echo htmlentities($str, ENT_COMPAT); // Will only convert double quotes echo "<br>"; echo htmlentities($str, ENT_QUOTES); // Converts double and single quotes echo "<br>"; echo htmlentities($str, ENT_NOQUOTES); // Does not convert any quotes ?>

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

Albert Einstein said: 'E=MC&sup2;'<br> Albert Einstein said: &#039;E=MC&sup2;&#039;<br> Albert Einstein said: 'E=MC&sup2;'

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

Albert Einstein said: 'E=MC²' Albert Einstein said: 'E=MC²' Albert Einstein said: 'E=MC²'

自分で試してみる »

西ヨーロッパ文字セットを使用して、一部の文字を HTML エンティティに変換します。

<?php $str = "My name is Øyvind Åsane. I'm Norwegian."; echo htmlentities($str, ENT_QUOTES, "UTF-8"); // Will only convert double quotes (not single quotes), and uses the character-set Western European ?>

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

<!DOCTYPE html> <html> <body> My name is &Oslash;yvind &Aring;sane. I&#039;m Norwegian. </body> </html>

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

My name is Øyvind Åsane. I'm Norwegian.

自分で試してみる »



PHP 文字列リファレンス


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

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

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

スクールの詳細