شبكة تعلم مع ناو

ما نتيجة strlen(“مرحبا”) في PHP؟

النتيجة تعتمد على الترميز، لأن strlen() تعدّ البايتات وليس الحروف.

مع UTF-8، وهو المعتاد اليوم، كل حرف عربي يأخذ بايتين:

echo strlen("مرحبا");     // 10 (in UTF-8)
echo mb_strlen("مرحبا");  // 5

الحل

للنصوص العربية، أو أي نص قد يحتوي حروفًا غير إنجليزية، استخدم دوال mb_:

mb_strlen($text);
mb_substr($text, 0, 20);
mb_strtoupper($text);

دوال النصوص العادية تقطع الحروف العربية من منتصفها أحيانًا، فتظهر رموز غريبة.

اختبر نفسك

خمسة أسئلة سريعة، مع الإجابة والشرح بعد كل سؤال.