توضیح:
با استفاده از این تابع می توان برخی از کاراکترهای از پیش تعریف شده را به معادل html آن تبدیل کنیم.
اما با استفاده از تابع htmlentities می توان تمامی کاراکترهایی که معادل آنها وجود دارد را تبدیل کنیم.
برخی از این کاراکترهای از پیش تعریف شده عبارتند از:
- کاراکتر & یا ampersand تبدیل به & می شود
- کاراکتر ” یا double quote تبدیل به " می شود
- کاراکتر ‘ یا single quote تبدیل به ' می شود
- کاراکتر > یا less than تبدیل به < می شود
- کاراکتر < یا greater than تبدیل به > می شود
نحوه نوشتن:
1 |
htmlspecialchars(string,flags,character-set,double_encode); |
پارامترها:
- مقدار string: یک مقدار رشته جهت تبدیل کاراکترها.(ضروری)
- مقدار flag: تعیین نحوه مدیریت کوتیشن ها، رمزگذاری های نامعتبر و تعیین نوع سند .(اختیاری)
- مقدار character-set: تعیین نوع فرمت بندی کاراکترها.پیش فرض UTF-8 است و از تمامی کاراکترها پشتیبانی می کند.(اختیاری)
- مقدار double_encode: یک مقدار بولین که تعیین می کند تمامی کاراکترها به کاراکترهای معادل html تبدیل شود.مقدار پیش فرض آن true است و این اتفاق می افتد.(اختیاری)
استایل های مربوط به کوتیشن عبارتند از:
- مقدار ENT_COMPAT: این flag تنها جفت کوتیشن ها را تبدیل میکند. (مقدار پیش فرض است)
- مقدار ENT_QUOTES: هم تک کوتیشن هم جفت کوتیشن را تبدیل می کند.
- مقدار ENT_NOQUOTES: هیچ کوتیشنی را در هر حالتی تبدیل و رمزگذاری نمی کند.
لیست رمز گذاری های نامعتبر عبارتند از:
- مقدار ENT_IGNORE: کاراکترها و یا کدهای ناشناس را حذف می کند و به جای آن رشته خالی برگشت می دهد.
- مقدار ENT_SUBSTITUTE: کدهای ناشناس را با یونیکد U+FFFD یا FFFD#&; جایگزین میکند. در صورت عدم موفقیت رشته خالی برگشت میدهد.
- مقدار ENT_DISALLOWED: کد پوینت های ناشناس را با U+FFFD یا FFFD#&; جایگزین میکنند
لیست انواع سند عبارتند از:
- مقدار ENT_HTML401 (پیش فرض)
- مقدار ENT_HTML5
- مقدار ENT_XML1
- مقدار ENT_XHTML
مقدار بازگشت:
رشته تبدیل شده را برگشت میدهد.در صورتی که پارامتر رشته شما دارای رمزگذاری نامعتبر باشد یک رشته خالی برگشت میدهد. اگر قصد دارید رمزگذاری نامعتبر نادیده گرفته شود flag مربوط به ENT_IGNORE و ENT_SUBSTITUTE تنظیم شده باشد.
نسخه پشتیبانی:
(PHP 4, PHP 5, PHP 7, PHP 8)
مثال:
1 2 3 4 5 6 7 8 9 10 11 |
<?php $str = "This is some <b>bold</b> text."; echo htmlspecialchars($str); ?> /* خروجی source html This is some <b>bold</b> text. خروجی در مرورگر This is some <b>bold</b> text. */ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php $str = "amir & 'javanmir'"; echo htmlspecialchars($str, ENT_COMPAT); echo "<br>"; echo htmlspecialchars($str, ENT_QUOTES); echo "<br>"; echo htmlspecialchars($str, ENT_NOQUOTES); ?> /* خروجی source html amir & 'javanmir'<br> amir & 'javanmir'<br> amir & 'javanmir' خروجی در مرورگر amir & 'javanmir' amir & 'javanmir' amir & 'javanmir' */ |
1 2 3 4 5 6 7 8 9 10 11 |
<?php $str = 'I love "PHP".'; echo htmlspecialchars($str, ENT_QUOTES); ?> /* خروجی source html I love "PHP". خروجی در مرورگر I love "PHP". */ |