فونکسی htmlentities() PHP
مثال
تبدیل کاراکترها به عناصر HTML:
<?php $str = "<? W3S?h????>"; echo htmlentities($str); ?>
خروجی HTML کد بالا به شرح زیر است (منبع کد را مشاهده کنید):
<!DOCTYPE html> <html> <body> <© W3Sçh°°¦§> </body> </html>
خروجی مرورگر برای کد بالا:
<? W3S?h????>
تعریف و نحوه استفاده
فونکسی htmlentities() کاراکتر را به HTML entity تبدیل میکند.
توضیحات:برای تبدیل HTML entity به کاراکتر، از html_entity_decode() فونکسی استفاده کنید.
توضیحات:لطفاً از get_html_translation_table() فونکسی که جدول ترجمهای که توسط htmlentities() استفاده میشود را بازمیگرداند.
نحوه استفاده
htmlentities(string,flags,character-set,double_encode)
پارامترها | توضیح |
---|---|
string | ضروری. مشخص میکند رشتهای که باید تبدیل شود. |
flags |
اختیاری. مشخص میکند چگونه نقل قولها، کدپوینتهای نامعتبر و نوع مستند پردازش شوند. نوعهای نقل قول موجود:
کدپوینتهای نامعتبر:
نشانهای اضافی برای نوع مستند استفاده شده:
|
character-set |
اختیاری. یک رشته که مجموعه کاراکترهایی که باید استفاده شوند را مشخص میکند. مقدار مجاز:
توضیحات:در نسخههای PHP قبل از 5.4، کدگذاریهای غیرقابل شناسایی نادیده گرفته میشوند و با ISO-8859-1 جایگزین میشوند. از PHP 5.4 به بعد، کدگذاریهای غیرقابل شناسایی نادیده گرفته میشوند و با UTF-8 جایگزین میشوند. |
double_encode |
اختیاری. بولین، مشخص میکند آیا باید عناصر 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
با استفاده از مجموعهی کاراکترهای اروپای غربی، برخی از کاراکترها به صورت entityهای 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 است. من نروژیام.