Php/func string htmlentities

来自菜鸟教程
跳转至:导航、​搜索

PHP htmlentities()函数

❮PHP字符串参考

将一些字符转换为HTML实体:

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

 ?>

上面代码的HTML输出为(查看源代码):

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

上面代码的浏览器输出将是:

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

定义和用法

htmlentities()函数将字符转换为HTML实体。

Tip: 要将HTML实体转换回字符,请使用 html_entity_decode()

功能。

Tip: 使用 get_html_translation_table()

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

句法

htmlentities(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-将指定文档类型中无效的代码点替换为Unicode替换字符U + FFFD(UTF-8)或&#FFFD;

用于指定使用的文档类型的其他标志:

  • ENT_HTML401-默认。将代码作为HTML 4.01处理
  • ENT_HTML5-将代码处理为HTML 5
  • ENT_XML1-将代码作为XML 1处理
  • ENT_XHTML-将代码作为XHTML处理
character-set

可选的。一个字符串,指定要使用的字符集。 允许的值为:

  • 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-默认。会转换一切
  • 否-不会对现有的html实体进行编码

技术细节

返回值: 返回转换后的字符串。但是,如果

string 参数包含无效的编码,除非设置ENT_IGNORE或ENT_SUBSTITUTE标志,否则它将返回空字符串

PHP版本: 4+
更新日志: PHP 5.6-更改了默认值

character-set 参数为默认字符集的值(在配置中)。
PHP 5.4-更改了默认值 character-set 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-添加了 character-set 参数。

更多例子

将一些字符转换为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字符串参考