PHP htmlentities() फ़ंक्शन

उदाहरण

把字符转换为 HTML 实体:

<?php
$str = "<? W3S?h????>";
echo htmlentities($str);
?>

इस कोड का HTML आउटपुट नीचे दिया गया है (स्रोत कोड देखें):

<!DOCTYPE html>
<html>
<body>
<© W3Sçh°°¦§>
</body>
</html>

इस कोड का ब्राउज़र आउटपुट नीचे दिया गया है:

<? W3S?h????>

रूपरेखा और इस्तेमाल

htmlentities() फ़ंक्शन को चारित्र को HTML इंटरसेप्ट में बदलता है।

सूचना:यदि आप HTML इंटरसेप्ट चारित्र को चारित्र में बदलना चाहते हैं तो html_entity_decode() फ़ंक्शन।

सूचना:इसे इस्तेमाल करें 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; में प्रतिस्थापित करता है।

इस्तेमाल करने वाले डॉक्यूमेंट टाइप के लिए अतिरिक्त flags निर्दिष्ट करता है:

  • 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 专用 Cyrillic 字符集
  • cp1251 - Windows 专用 Cyrillic 字符集
  • cp1252 - Windows 专用西欧字符集
  • KOI8-R - 俄语
  • BIG5 - 繁体中文,主要在台湾使用
  • GB2312 - 简体中文,国家标准字符集
  • BIG5-HKSCS - 带香港扩展的 Big5
  • Shift_JIS - 日语
  • EUC-JP - 日语
  • MacRoman - Mac 操作系统使用的字符集

注释:在 PHP 5.4 之前的版本,无法被识别的字符集将被忽略并由 ISO-8859-1 替代。自 PHP 5.4 起,无法被识别的字符集将被忽略并由 UTF-8 替代。

double_encode

可选。布尔值,规定是否编码已存在的 HTML 实体。

  • TRUE - 默认。将对每个实体进行转换。
  • FALSE - 不会对已存在的 HTML 实体进行编码。

技术细节

返回值:

返回被转换的字符串。

如果 string 包含无效的编码,则返回一个空的字符串,除非设置了 ENT_IGNORE 或者 ENT_SUBSTITUTE 标志。

PHP 版本: 4+
更新日志:

在 PHP 5 中,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 参数。

更多实例

例子 1

把字符转换为 HTML 实体:

<?php
$str = "Bill & 'Steve'";
echo htmlentities($str, ENT_COMPAT); // 只转换双引号
echo "<br>";
echo htmlentities($str, ENT_QUOTES); // 转换双引号和单引号
echo "<br>";
echo htmlentities($str, ENT_NOQUOTES); // कोई अनुवाद नहीं करेगा
?>

इस कोड का HTML आउटपुट नीचे दिया गया है (स्रोत कोड देखें):

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

इस कोड का ब्राउज़र आउटपुट नीचे दिया गया है:

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

चलाने वाला इन्स्टांस

उदाहरण 2

पश्चिमी यूरोपीय चारित्रसमूह का उपयोग करके कुछ चारित्रों को HTML रीलीफ़ करें:

<?php
$str = "My name is ?yvind ?sane. I'm Norwegian.";
echo htmlentities($str, ENT_QUOTES, "ISO-8859-1"); 
// केवल डबल कवेन्स (एकल कवेन्स नहीं) बदलेगा, और पश्चिमी यूरोपीय चारित्रसमूह का उपयोग करता है
?>

इस कोड का HTML आउटपुट नीचे दिया गया है (स्रोत कोड देखें):

<!DOCTYPE html>
<html>
<body>
मेरा नाम Øyvind Åsane है. मैं नॉर्वे वासी हूँ.
</body>
</html>

इस कोड का ब्राउज़र आउटपुट नीचे दिया गया है:

मेरा नाम ?yvind ?sane है. मैं नॉर्वे वासी हूँ.

चलाने वाला इन्स्टांस