PHP htmlentities() Function













مرجع رشته PHP




مثال


تبدیل برخی از کاراکترها به موجودیت های HTML:



$str = 'رفتن به
w4schools.com
';
echo htmlentities($str);

?>

خروجی HTML کد بالا (نمایش منبع):

خواهد بود

<a href="https://www.w4schools.com">به w4schools.com بروید</a>

خروجی مرورگر کد بالا به صورت زیر خواهد بود:




خودتان آن را امتحان کنید »





تعریف و استفاده


تابع htmlentities() کاراکترها را به موجودیت های HTML تبدیل می کند.


نکته: برای تبدیل مجدد موجودیت‌های HTML به کاراکتر، از
تابع html_entity_decode().


نکته: از استفاده کنید
تابع get_html_translation_table()
برای برگرداندن جدول ترجمه استفاده شده توسط htmlentities().





نحو



htmlentities (رشته، پرچم‌ها، مجموعه کاراکترها، دوبار_انکد)


مقادیر پارامتر









را مشخص می کند













پارامتر توضیح
رشته لازم است. رشته تبدیل
پرچم ها اختیاری. نحوه رسیدگی به نقل قول ها، رمزگذاری نامعتبر و نوع سند استفاده شده را مشخص می کند.

سبک های نقل قول موجود عبارتند از:



  • ENT_COMPAT - پیش‌فرض. فقط دو نقل قول را رمزگذاری می کند

  • ENT_QUOTES - نقل قول های دوتایی و تکی را رمزگذاری می کند

  • ENT_NOQUOTES - هیچ نقل قولی را رمزگذاری نمی کند


رمزگذاری نامعتبر:



  • ENT_IGNORE - به جای اینکه تابع یک رشته خالی را برگرداند، کدگذاری نامعتبر را نادیده می گیرد. باید از آن اجتناب کرد، زیرا ممکن است پیامدهای امنیتی داشته باشد.

  • ENT_SUBSTITUTE - رمزگذاری نامعتبر را برای مجموعه کاراکترهای مشخص شده با یک نویسه جایگزین یونیکد U+FFFD (UTF-8) یا &C#FFFD; به جای برگرداندن یک رشته خالی.

  • ENT_DISALLOWED - نقاط کدی را که در doctype مشخص شده نامعتبر هستند با یک نویسه جایگزین Unicode U+FFFD (UTF-8) یا &C#FFFD;
  • جایگزین می‌کند.

پرچم های اضافی برای تعیین نوع doctype استفاده شده:



  • ENT_HTML401 - پیش‌فرض. کد را به صورت HTML 4.01
  • مدیریت کنید
  • ENT_HTML5 - کد را به عنوان HTML 5 مدیریت کنید

  • ENT_XML1 - کد را به عنوان XML 1 مدیریت کنید

  • ENT_XHTML - کد را به عنوان XHTML مدیریت کنید


مجموعه کاراکتر اختیاری. رشته ای که مشخص می کند از کدام مجموعه کاراکتر استفاده شود.

مقادیر مجاز عبارتند از:



  • UTF-8 - پیش‌فرض. یونیکد 8 بیتی چند بایتی سازگار با اسکی

  • ISO-8859-1 - اروپای غربی

  • ISO-8859-15 - اروپای غربی (علامت یورو + حروف فرانسوی و فنلاندی که در ISO-8859-1 وجود ندارد را اضافه می کند)

  • cp866 - مجموعه حروف سیریلیک مخصوص DOS

  • cp1251 - مجموعه حروف سیریلیک مخصوص ویندوز

  • cp1252 - مجموعه نویسه مخصوص ویندوز برای اروپای غربی

  • KOI8-R - روسی

  • BIG5 - چینی سنتی، عمدتاً در تایوان استفاده می‌شود

  • GB2312 - چینی ساده شده، مجموعه نویسه استاندارد ملی

  • BIG5-HKSCS - Big5 با برنامه های افزودنی هنگ کنگ

  • Shift_JIS - ژاپنی

  • EUC-JP - ژاپنی

  • MacRoman - مجموعه نویسه‌هایی که توسط Mac OS استفاده می‌شد


توجه: مجموعه کاراکترهای ناشناخته نادیده گرفته می‌شوند و ISO-8859-1 در نسخه‌های قبل از PHP 5.4 جایگزین می‌شوند. از PHP 5.4، نادیده گرفته می شود و با UTF-8 جایگزین می شود.


double_encode اختیاری. یک مقدار بولی که مشخص می‌کند موجودیت‌های html موجود کدگذاری شوند یا نه.

  • درست - پیش فرض. همه چیز را تبدیل می کند

  • FALSE - موجودیت های html موجود را رمزگذاری نمی کند









<اسکریپت>
googletag.cmd.push(function() { googletag.display('div-gpt-ad-1493883843099-0'); });






جزئیات فنی















مقدار بازگشتی: رشته تبدیل شده را برمی گرداند. با این حال، اگر رشته
پارامتر حاوی رمزگذاری نامعتبر است، یک رشته خالی برمی‌گرداند، مگر اینکه پرچم‌های ENT_IGNORE یا ENT_SUBSTITUTE تنظیم شده باشند
نسخه PHP: 4+
تغییر: PHP 5.6 - مقدار پیش‌فرض را برای مجموعه کاراکتر تغییر داد
پارامتر به مقدار مجموعه حروف پیش فرض (در پیکربندی).
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:




$str = "آلبرت انیشتین گفت: 'E=MC²'";

echo htmlentities ($str، ENT_COMPAT); // فقط دو نقل قول را تبدیل می کند

echo "
";

echo htmlentities ($str، ENT_QUOTES); // گیومه های دوتایی و تکی را تبدیل می کند

echo "
";

echo htmlentities($str، ENT_NOQUOTES); // هیچ نقل قولی را تبدیل نمی کند

?>

خروجی HTML کد بالا (نمایش منبع):

خواهد بود

آلبرت انیشتین گفت: "E=MC²"

آلبرت انیشتین گفت:
&C#039;E=MC²&C#039;

آلبرت انیشتین گفت: "E=MC²"

خروجی مرورگر کد بالا به صورت زیر خواهد بود:



آلبرت انیشتین گفت: 'E=MC²'
آلبرت انیشتین گفت: 'E=MC²'
آلبرت
انیشتین گفت: E=MC²


خودتان آن را امتحان کنید »




مثال


تبدیل برخی از کاراکترها به موجودیت های HTML با استفاده از اروپای غربی
مجموعه شخصیت:



$str = "اسم من Øyvind Åsane است. من نروژی هستم.";
echo htmlentities($str, ENT_QUOTES, "UTF-8"); // آیا فقط نقل قول های دوگانه (نه نقل قول های تک) را تبدیل می کند و از مجموعه کاراکترهای اروپای غربی استفاده می کند
؟>

خروجی HTML کد بالا (نمایش منبع):

خواهد بود




اسم من Øyvind Åsane است. من نروژی هستم.



خروجی مرورگر کد بالا به صورت زیر خواهد بود:



نام من Øyvind Åsane است. من نروژی هستم.


خودتان آن را امتحان کنید »






مرجع رشته PHP