get_html_translation_table()

1. 定义

该函数返回使用函数htmlspecialchars()htmlentities()后的转换表。

2. 语法

get_html_translation_table ([ int $table = HTML_SPECIALCHARS [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = 'UTF-8' ]]] ) : array

3. 参数说明

参数 可选性 数据类型 描述
$table 可选 常量 需要转换的表,默认为HTML_SPECIALCHARS
$flags 可选 常量 设置该函数如何处理引号和使用的文档类型,默认为ENT_COMPAT | ENT_HTML401
$encoding 可选 字符串 转换字符时使用的字符集编码,默认为UTF-8

其中,$table参数有两个可选值:

  • HTML_SPECIALCHARS:默认值,只转换特定的实体符号
  • HTML_ENTITIES:转换所有需要编码的符号

再有,$flags的值有以下几种:

  • ENT_COMPAT:只转换双引号,而不转换单引号
  • ENT_QUOTES:既转换单引号,也转换双引号
  • ENT_NOQUOTES:单/双引号都不转换
  • ENT_HTML401:以HTML 4.01处理代码
  • ENT_XML1:以XML 1处理代码
  • ENT_XHTML:以XHTML处理代码
  • ENT_HTML5:以HTML 5处理代码

最后,$encoding支持的字符集有:ISO-8859-1ISO-8859-5ISO-8859-15UTF-8cp866cp1251cp1252KOI8-RBIG5GB2312BIG5-HKSCSShift_JISEUC-JPMacRoman等。

4. 示例

<?php

// get_html_translation_table()
// 返回使用函数`htmlspecialchars()`和`htmlentities()`后的转换表

var_dump(get_html_translation_table());// 某些特殊的实体符号:" & < >
/* 输出:
array(4) {
  ["""]=>
  string(6) "&quot;"
  ["&"]=>
  string(5) "&amp;"
  ["<"]=>
  string(4) "&lt;"
  [">"]=>
  string(4) "&gt;"
}
*/

$res = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES | ENT_HTML5);// 所有实体与符号的对应数组
var_dump($res);
/* 部分输出:
array(1511) {
 ["✓"]=>
  string(7) "&check;"
  ["✗"]=>
  string(7) "&cross;"
  ["✠"]=>
  string(9) "&maltese;"
  ["✶"]=>
  string(6) "&sext;"
  ["❘"]=>
  string(19) "&VerticalSeparator;"
  ...
}
*/

5. 延展阅读