Skip to content

إزالة الفراغات من النص في PHP

إزالة الفراغات من النص في PHP

22 أبريل 2015 | 00:00

في بعض إالأحيان نحتاج إلى حذف جميع الفراغات من النص قبل التحقق مثلا من صلاحيته (Validation) لإضافته إلى قاعدة البيانات. فمثلا قبل إضافة رقم الهاتف لقاعدة البيانات يتوجب علينا التحقق أولا من أنه يتكون فقط من أرقام صحيحة، ولهذا الغرض سنستعمل الدالة str_replace الموجودة في PHP كالتالي :

 
//إزالة الفراغات من رقم الهاتف
$phone = '066 7777 88 999';
$phone_without_spaces =  str_replace(' ', '', $phone);
echo $phone_without_spaces; // الحاصل سيكون 066777788999
 

عند تجربة الكود أعلاه سنلاحظ أن دالة str_replace تعمل كما يجب، ولكن ماذا لو كانت الفراغات مركبة أومتعددة (multiple whitespaces) ؟ في تلك الحالة لن تكون لدالة str_replace الفائدة المرجوة، فهي ستقوم فقط بإزالة الفراغات البسيطة (’ ’) وليس الفراغات المركبة (’      ’) كلها. لحسن الحظ هناك دالة أخرى في PHP تفي بالغرض وهي preg_replace التي تعمل بنفس الطريقة إلا أنها تقبل في البارامتر الأول تعبيرا اعتياديا (Regular Expression) عوض قيمة نصية عند دالة str_replace، والمثال التالي سيوضح المسألة أكثر :

//إزالة الفراغات المركبة من رقم الهاتف
$phone = '066      7777          88      999';
$phone_without_whitespaces =  preg_replace('/\s+/', '', $phone);
echo $phone_without_whitespaces; // الحاصل سيكون 066777788999

كما تلاحظون هنا استعملنا تعبيرا اعتياديا /\s+/ في البارامتر الأول يقول لدالة preg_replace أن تقوم بإزالة كل الفراغات في النص (الفراغ المركب يتكون من عدة فراغات قد تكون حتى أسطرا فارغة) والحاصل كما هو معروف سيكون رقما هاتفيا مكونا من أرقام فقط.

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