وظيفة 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 - استبدال النقاط غير الصالحة بـ رمز معين يحتوي على رمز استبدال يونيكود U+FFFD (UTF-8) أو &#FFFD; بدلاً من العودة بـ نص فارغ.
  • ENT_DISALLOWED - استبدال النقاط غير الصالحة في نوع الملف المحدد بـ رمز استبدال يونيكود 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البيان:

double_encode

اختياري. قيمة منطقية، تحدد ما إذا كان يجب ت编码 الكيانات الموجودة بالفعل في HTML أم لا.

  • TRUE - افتراضي. سيتم تحويل كل كيان.
  • FALSE - لن يتم ت编码 الكيانات الموجودة بالفعل في HTML.

تفاصيل تقنية

النتيجة:

سيتم إرجاع النص المحوّل.

إذا string إذا كان يحتوي على ترميز غير صالح، فسيتم إرجاع نص فارغ، ما لم يتم تعيين إشارات ENT_IGNORE أو ENT_SUBSTITUTE.

إصدار PHP: 4+
سجل التحديثات:

في PHP 5،character-set قيمة المفترضة للمتغيرات.

في 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"); 
// Will only convert double quotes (not single quotes), and uses the character-set Western European
?>

以上代码的 HTML 输出如下(查看源代码):

<!DOCTYPE html>
<html>
<body>
My name is Øyvind Åsane. I'm Norwegian.
</body>
</html>

以上代码的浏览器输出:

My name is ?yvind ?sane. I'm Norwegian.

运行实例