شاید برای مورد اولی هدفش پاک کردن فاصله ها بوده
چون در صورت عدم وجود در انتها فانکشن با رشته عبارت
nbsp; رو همراه با رشته برمیگردوند
ورودی تابع رشته است بدون entity name، داخل تابع توسط متد htmlentities کارکتر هامون به entity تبدیل خواهد شد، اما اگر در ورودی تابع ارسال کنید به مشکل میخورد و nbsp; برگشت میدهد (به صورت خلاصه اگر ورودی تابع مستقیم بنویسیم خروجی nbsp; خواهد آمد)
نکته ی دیگری که هست در فلگ دیفالت (ENT_HTML401) این متد از کارکتر non breaking space یا همون پشتیبانی نمی کند، پس اگر ورودی تابع بالای ما non breaking space داشته باشد، متد htmlentities همون کارکتر فاصله را نمایش میدهد و نه و حتی ‌ هم پشتیبانی نمیکند (کلا 4 تا کارکتر فلگ دیفالت پشتیبانی میکند که در پایین لیست کردم) برای همین کلا این لاین اضافه و بدون کاربرد است مگر اینکه فلگ را عوض کنیم.
بله. نیم فاصله و فاصله رو تبدیل کرده به فاصله و بقیه Entity رو حذف کرده.
درست است، فاصله ها را تبدیل کرده است، اگر نباشد و چند جمله باشد بهم میچسبند.
ولی من بارم نفهمیدم در htmlentities وقتی flags رو null گذاشته یعنی تابع بدون flags کار میکنه و اروری نمیده یا نه چون flag دیفالت یعنی ENT_COMPAT | ENT_HTML401 رو استفاده میکنه اروری نمیده؟
این پارامتر اختیاری است، حالا اگر میخواهید ببینید اگر مقدار null بزاریم چه کارکتر هایی را این فلگ پشتیبانی میکند به صورت زیر عمل کنید : (null هم بزارید باز از ENT_HTML401 استفاده خواهد کرد)
کد PHP:
var_dump(get_html_translation_table(null));
خروجی :
کد:
array (size=4)
'"' => string '"' (length=6)
'&' => string '&' (length=5)
'<' => string '<' (length=4)
'>' => string '>' (length=4)
حالا از فلگ زیر استفاده کنید :
کد PHP:
var_dump(get_html_translation_table(ENT_HTML5));
خروجی :
کد:
array (size=252)
'"' => string '"' (length=6)
'&' => string '&' (length=5)
'<' => string '<' (length=4)
'>' => string '>' (length=4)
' ' => string ' ' (length=6)
'¡' => string '¡' (length=7)
'¢' => string '¢' (length=6)
'£' => string '£' (length=7)
'¤' => string '¤' (length=8)
'¥' => string '¥' (length=5)
'¦' => string '¦' (length=8)
'§' => string '§' (length=6)
'¨' => string '¨' (length=5)
'©' => string '©' (length=6)
'ª' => string 'ª' (length=6)
'«' => string '«' (length=7)
'¬' => string '¬' (length=5)
'' => string '' (length=5)
'®' => string '®' (length=5)
'¯' => string '¯' (length=6)
'°' => string '°' (length=5)
'±' => string '±' (length=8)
'²' => string '²' (length=6)
'³' => string '³' (length=6)
'´' => string '´' (length=7)
'µ' => string 'µ' (length=7)
'¶' => string '¶' (length=6)
'·' => string '·' (length=8)
'¸' => string '¸' (length=7)
'¹' => string '¹' (length=6)
'º' => string 'º' (length=6)
'»' => string '»' (length=7)
میبینید این فلگ 252 تا کارکتر را پشتیبانی و تبدیل میکند، پس اول ببینید رشته ورودی این تابع شما چه Handle ای نیاز دارد و فلگ مناسب با آن را انتخاب کنید.