PHP htmlspecialchars() 函数

实例

把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体:

bold text.";
echo htmlspecialchars($str);
?>

مذکورہ بالا کو کا HTML اخراج جیسا ہے (اس کا سورس دیکھئے):

<!DOCTYPE html>
<html>
<body>
This is some bold text.
</body>
</html>

مذکورہ بالا کو کا براوزر کا اخراج:

This is some bold text.

چلنے والا مثال

定义和用法

htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。

预定义的字符是:

  • & (和号)成为 &
  • " (双引号)成为 "
  • ' (单引号)成为 '
  • < (小于)成为 <
  • > (大于)成为 >

提示:如需把特殊的 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 - 把指定文档类型中的无效代码点替代成 Unicode 替代字符 U+FFFD(UTF-8)或者 &#FFFD;。

Akanan cin a nufin dokumentin a kanan a yi amfani da:

  • ENT_HTML401 - Default. Akanan HTML 4.01.
  • ENT_HTML5 - Akanan HTML 5.
  • ENT_XML1 - Akanan XML 1.
  • ENT_XHTML - Akanan HTML da a yi amfani da XHTML.
character-set

Iya yi. A kanan string, a nufin character set a kanan zai yi amfani da.

Akanan cin:

  • UTF-8 - Default. ASCII compatible 8-bit Unicode
  • ISO-8859-1 - Western Europe
  • ISO-8859-15 - Western Europe (including euro sign + French and Finnish letters lost in ISO-8859-1)
  • cp866 - Cyrillic character set for DOS
  • cp1251 - Cyrillic character set for Windows
  • cp1252 - Western European character set for Windows
  • KOI8-R - Russian
  • BIG5 - Traditional Chinese, mainly used in Taiwan
  • GB2312 - Simplified Chinese, standard character set of China
  • BIG5-HKSCS - Big5 da a yi amfani da a Hong Kong
  • Shift_JIS - Japanese
  • EUC-JP - Japanese
  • MacRoman - Character set a kan Mac a cikin OS

Rarrabawa:A kanan PHP 5.4 kafin, character set da za a gina gina zai yi ENTIgnore da kuma zai yi ISO-8859-1. Daga PHP 5.4, character set da za a gina gina zai yi ENTIgnore da kuma zai yi UTF-8.

double_encode

Iya yi. A kanan Boolean, a nufin wanda zai yi kanan HTML entity.

  • TRUE - A kanan. Za a canza kowane entity.
  • FALSE - Wannan za a gina ma HTML entity a da yake da yawa.

Rarrabawa:

Akanan cin:

Akanan cin a wajen canza.

If string Akanan cin zai wajen kamaan cin a baiyi, yana ENT_IGNORE ama ENT_SUBSTITUTE.

PHP birin: 4+
Rarrabawa:

A kanu a kanan PHP 5,character-set A kanan cin zai UTF-8.

A kanu a kanan PHP 5.4, a baiyi: ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 da ENT_XHTML.

A kanu a kanan PHP 5.3, a baiyi ENT_IGNORE.

A kanu a kanan PHP 5.2.3, a baiyi. double_encode 参数。

在 PHP 4.1 中,新增了 character-set 参数。

更多实例

例子 1

把一些预定义的字符转换为 HTML 实体:

";
echo htmlspecialchars($str, ENT_QUOTES);// 转换双引号和单引号
echo "
"; echo htmlspecialchars($str, ENT_NOQUOTES); // 不转换任何引号 ?>

مذکورہ بالا کو کا HTML اخراج جیسا ہے (اس کا سورس دیکھئے):

<!DOCTYPE html>
<html>
<body>
Bill & 'Steve'
Bill & 'Steve'
Bill & 'Steve' </body> </html>

مذکورہ بالا کو کا براوزر کا اخراج:

Bill & 'Steve'
Bill & 'Steve'
Bill & 'Steve'

چلنے والا مثال

例子 2

把双引号转换为 HTML 实体:


مذکورہ بالا کو کا HTML اخراج جیسا ہے (اس کا سورس دیکھئے):

<!DOCTYPE html>
<html>
<body>
میں "PHP" کو پیار کرتا ہوں.
</body>
</html>

مذکورہ بالا کو کا براوزر کا اخراج:

میں "PHP" کو پیار کرتا ہوں.

چلنے والا مثال