php get_html_translation_tableでHTMLエンティティを確認する

  • 作成日 2021.10.08
  • 更新日 2022.03.05
  • php
php get_html_translation_tableでHTMLエンティティを確認する

phpで、get_html_translation_tableを使用して、HTMLエンティティを確認するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

get_html_translation_table使い方

get_html_translation_tableを使用すれば、HTMLエンティティを確認することが可能です。

get_html_translation_table( HTML_ENTITIES or HTML_SPECIALCHARS , 変換する文字の種類 )

第二引数の変換する文字の種類は以下となります。

  • ENT_COMPAT : ダブルクォートを含めシングルクォートは含めない
  • ENT_QUOTES : ダブルクォートとシングルクォートの両方を含める
  • ENT_NOQUOTES : ダブルクォートとシングルクォートの両方を含めない
  • ENT_HTML401 : HTML 4.01
  • ENT_XML1 : XML 1
  • ENT_XHTML : XHTML
  • ENT_HTML5 : HTML 5

以下は、htmlentitiesとhtmlspecialcharsのHTMLエンティティを確認するサンプルコードとなります。

<?php

// htmlentities 
var_dump(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES));

実行結果

array(253) {
  '"' =>
  string(6) "&quot;"
  '&' =>
  string(5) "&amp;"
  '\'' =>
  string(6) "&#039;"
  '<' =>
  string(4) "&lt;"
  '>' =>
  string(4) "&gt;"
  ' ' =>
  string(6) "&nbsp;"
  '¡' =>
  string(7) "&iexcl;"
  '¢' =>
  string(6) "&cent;"
  '£' =>
  string(7) "&pound;"
  '¤' =>
  string(8) "&curren;"
  '¥' =>
  string(5) "&yen;"
  '¦' =>
  string(8) "&brvbar;"
  '§' =>
  string(6) "&sect;"
  '¨' =>
  string(5) "&uml;"
  '©' =>
  string(6) "&copy;"
  'ª' =>
  string(6) "&ordf;"
  '«' =>
  string(7) "&laquo;"
  '¬' =>
  string(5) "&not;"
  '­' =>
  string(5) "&shy;"
  '®' =>
  string(5) "&reg;"
  '¯' =>
  (more elements)...
}

htmlspecialcharsの方は、以下の結果となります。

<?php

// htmlspecialchars
var_dump(get_html_translation_table(HTML_SPECIALCHARS, ENT_QUOTES));

実行結果

array(5) {
  '"' =>
  string(6) "&quot;"
  '&' =>
  string(5) "&amp;"
  '\'' =>
  string(6) "&apos;"
  '<' =>
  string(4) "&lt;"
  '>' =>
  string(4) "&gt;"
}