استخدِم `mb_strlen($text, 'utf-8')` ولا `strlen($text)` في لغة بي إتش بي (PHP) ?

· 369 كلمة · 2 دقيقة قراءة

في معظم الحالات، عليك أن تستخدم mb_strlen($text, 'utf-8') في لغة پي إتش پي PHP. وإليك الأسباب.

ليه mb_strlen هي الأفضل؟ 🔗

  • الدقة في حساب الحروف التي تتكون من أكثر من بايت: mb_strlen هي فانكشن مُصمّمة للتعرف على الحروف والرموز التي تتكون من أكتر من بايت (multibyte charachers encodings) مثل UTF-8. هذه الفانكشن تَعْتَبِر الحروف والرموز مكونة من أكثر من بايت، وبذلك تعطس عدد الحروف بشكل صحيح. أما strlen تفترض أن الحروف والرموز مكونة من بايت واحد فقط لذلك أحياناً تعطي عدد الحروف بشكل خاطئ إن كان هناك رموز خارج الـ ASCII.

  • التناسق والإتساق: إن كنت تتعامل مع نصوص مكوده بـ UTF-8 encoded data (وهو المُعْتاد حالياً)، استخدم فانكشن mb_strlen لتكون مطمئن لدقة وتناسق العدد الناتج في كل أجزاء الكود الذي تستخدمه. هذه الفانكشن تتجنب السلوكيات والنتائج الغير متوقعة عند التعامل مع رموز وحروف خارج نطاق الـ ASCII.

  • مناسبة للمستقبَل: حتى إن كانت البيانات والنصوص التي تتعامل معها اليوم هي نصوص عبارة عن ASCII فقط ، استخدم الفانكشن mb_strlen لكي يكون الكود الذي تكتبه مستعداً للتغيرات المستقبلية التي ربما تطرأ على المشروع الذي تعمل عليه حالياً.

متى نستخدم فانكشن strlen ؟ 🔗

ربما يكون هناك بعض الحالات النادرة التي تكون فيها فانكشن strlen مقبولة:

  • الكود القديم: إن كنت تعمل على كود قديم وهذا الكود يعتمد على نصوص مكونة من بايت واحدة للرمز، ربما يكون استخدام strlen مناسباً. ولكنني أفضل استخدام mb_strlen حتى في هذه الحالة لأسباب متعددة منها الاستعداد للمستقبل واحتمالات تغير البيانات والنصوص المدعومة.

  • عمليات تعتمد على عدد البايت: إن كنت تعتمد بشكل مباشر على عدد البايت في النص ، يُمكنك استخدام strlen. ولكنني حتى في هذه الحالة أفضل استخدام الفانكشن بهذا الشكل mb_strlen($text, '8bit'). وبذلك أحصل على نتائج دقيقة لعدد البايت المكون للبيانات النصية بإستخدام الفانكشن الحديثة التي تضع في اعتبارها دعم عدد أكبر من أنواع النصوص (character encodings).

بإختصار 🔗

استخدم mb_strlen($text, 'utf-8') في كل الاستخدامات للحصول على دقة في عدّ الرموز والحروف وخاصةً عندما تكون البيانات UTF-8 encoded data. لأنها تساعدك في تجنب الحالات الخاصة والأخطاء غير المتوقعة.

أتمنى أن تكون قد استفدت من الموضوع ، إن كنت تعرف أي شخص يُمكنه الإستفادة من هذه المعلومات، ارسل له رابط هذا المقال. إن أردت معرفة الموضوعات الجديدة بعد نشرها مباشرةً على موقع أبانوب حنا ، تابعني على يوتيوب و تيليجرام ، و فيسبوك ، و واتساب .

التصنيفات: برمجة
مشاركة: