تابع PHP htmlspecialchars()
مثال
کاراکترهای پیشتعریف شده "<" (کوچکتر از) و ">" (بزرگتر از) را به HTML entity تبدیل کنید:
<?php $str = "این یک متن <b>موی بلند</b> است."; echo htmlspecialchars($str); ?>
خروجی HTML کد بالا به شرح زیر است (منبع کد را مشاهده کنید):
<!DOCTYPE html> <html> <body> این یک متن <b>موی بلند</b> است. </body> </html>
خروجی مرورگر کد بالا به شرح زیر است:
این یک متن <b>موی بلند</b> است.
تعریف و استفاده
تابع htmlspecialchars() کاراکترهای پیشتعریف شده را به HTML entity تبدیل میکند.
کاراکترهای پیشتعریف شده:
- & (و) به & تبدیل میشود
- " (نقل قول بزرگ) به " تبدیل میشود
- ' (نقل قول کوچک) به ' تبدیل میشود
- < (کوچکتر از) به < تبدیل میشود
- > (بزرگتر از) به > تبدیل میشود
توضیحات:برای تبدیل HTML entityهای خاص به کاراکترها از htmlspecialchars_decode() تابع.
نحوه استفاده
htmlspecialchars(مفہوم: string,flags,character-set,double_encode)
پارامترها | توضیح |
---|---|
مفہوم: string | ضروری. رشتهای که باید تبدیل شود را مشخص میکند. |
flags |
اختیاری. روشی که نقل قولها، کدهای غیرمجاز و نوع مستند استفاده میشود را مشخص میکند. نوعهای نقل قول موجود:
کدهای غیرمجاز:
مفہوم: استعمال کئے جانے والی ڈاکومنٹ کی طرز کی اضافی فلیگس مقرر کرنا جائز ہوگا:
|
character-set |
مفہوم: اختیاری، یہ ایک کارکتر سیٹ کا نشان دہ میں مقرر کیا جائے کا مفہوم ہوگا جو استعمال کیا جانا ہوگا۔ مفہوم: مجاز کئے گئے مفہوم:
مفہوم: تبصرہ:مفہوم: اگلایا: اگر کوئی ناقص کد شناخت نہیں کیا جاسکتا تو ISO-8859-1 سے متبادل کیا جائے گا۔ پی ایچ پی 5.4 سے، اگر کوئی ناقص کد شناخت نہیں کیا جاسکتا تو UTF-8 سے متبادل کیا جائے گا۔ |
double_encode |
مفہوم: اختیاری، بولی سائیں، موجودہ HTML کی اشاریوں کو کیا جائے کا فیصلہ کرتا ہے یا نہیں。
|
مفہوم: تکنیکی تفصیلات
مفہوم: رجوع کا مفہوم: |
مفہوم: تبدیل شدہ الفاظ کا رجوع دینا جائز ہوگا。 مفہوم: اگر، مفہوم: string مفہوم: اگر کوئی ناقص کد درج کیا گیا ہو، تو خالی الفاظ کا رجوع دینا جائز ہوگا، مگر کہ ENT_IGNORE یا ENT_SUBSTITUTE نشانات کو مقرر کیا گیا ہو۔ |
مفہوم: پی ایچ پی ورژن: | مفہوم: 4+ |
مفہوم: اپدیاتی نامہ: |
مفہوم: فی پی ایچ پی 5 میں،character-set مفہوم: پارامتر کا دفعتی مرتبہ UTF-8 میں تبدیل کیا گیا۔ مفہوم: فی پی ایچ پی 5.4 میں، نئی اضافات: ENT_SUBSTITUTE، ENT_DISALLOWED، ENT_HTML401، ENT_HTML5، ENT_XML1 اور ENT_XHTML. مفہوم: فی پی ایچ پی 5.3 میں، نئی اضافات ENT_IGNORE. مفہوم: فی پی ایچ پی 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" هستم.