htmlspecialchars
تابع htmlspecialchars کاراکترهای خاص را به «موجودیت های HTML» تبدیل می کند. «موجودیت (Entity)» نسخه امن یک کاراکتر در HTML است. مثلا < تبدیل به < می شود تا مرورگر آن را تگ حساب نکند.
تعریف و کاربرد
این تابع پنج کاراکتر را تبدیل می کند: &, ", ', <, >. بنابراین متن داخل ورودی، به صورت امن نمایش داده می شود و مثل کد HTML اجرا نمی شود.
سینتکس
htmlspecialchars(string, flags, character-set, double_encode)
گزینه flags تعیین می کند با نقل قول ها و داک تایپ چه رفتاری شود. گزینه double_encode مشخص می کند موجودیت های موجود دوباره کد شوند یا نه.
مثال پایه: ایمن کردن تگ ها
<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>
کنترل نقل قول ها با flags
<?php
$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT);
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES);
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES);
?>
مثال: جلوگیری از دوباره کدشدن نقل قول ها
<?php
$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES);
?>
گام های عملی سریع
- رشته ورودی را از کاربر بگیر.
- در صورت نیاز، flags مناسب را انتخاب کن.
- تابع را صدا بزن و خروجی را نمایش بده.
نکته: برای برعکس کردن تبدیل، از htmlspecialchars_decode استفاده کن.
هشدار: ورودی با کدگذاری نادرست ممکن است رشته خالی برگرداند؛ مگر با ENT_IGNORE یا ENT_SUBSTITUTE.
لینک های مرتبط داخل سایت
مقایسه با htmlentities را ببین. همچنین صفحه تابع htmlspecialchars برای دی کد معکوس مفید است.
جمع بندی سریع
- پنج کاراکتر حساس را ایمن می کند.
- با flags رفتار نقل قول را تعیین کن.
- برای دی کد از نسخه decode کمک بگیر.
- از دوباره کدشدن با گزینه ها جلوگیری کن.