PHP htmlspecialchars() फ़ंक्शन

उदाहरण

पूर्वनिर्धारित चरित्र "<" (छोटे से) और ">" (बड़े से) को HTML इंटरपोलीटी में परिवर्तित करें:

<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>

ऊपरी कोड का HTML आउटपुट निम्नलिखित है (स्रोत कोड देखें):

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

ऊपरी कोड के ब्राउज़र आउटपुट निम्नलिखित है:

This is some <b>bold</b> 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; में प्रतिस्थापित करें।

规定使用的文档类型的附加 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 htmlspecialchars($str, ENT_COMPAT); // केवल दोहरे ट्रेल नाब परिवर्तित करें
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // दोहरे और एकल ट्रेल नाब परिवर्तित करें
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // कोई ट्रेल नाब नहीं परिवर्तित करें
?>

ऊपरी कोड का HTML आउटपुट निम्नलिखित है (स्रोत कोड देखें):

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

ऊपरी कोड के ब्राउज़र आउटपुट निम्नलिखित है:

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

चलने वाला उदाहरण

उदाहरण 2

दोहरे ट्रेल नाब को HTML रिप्रेसेंटेशन में परिवर्तित करें:

<?php
$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // दोहरे और एकल ट्रेल नाब परिवर्तित करें
?>

ऊपरी कोड का HTML आउटपुट निम्नलिखित है (स्रोत कोड देखें):

<!DOCTYPE html>
<html>
<body>
मैं "PHP" प्यार करता हूँ.
</body>
</html>

ऊपरी कोड के ब्राउज़र आउटपुट निम्नलिखित है:

मैं "PHP" प्यार करता हूँ.

चलने वाला उदाहरण