ترى كثيرا ان معظم المواقع تجعلك تضع معلومات وتقوم بإرسالها اليهم ,
سواء اسمك او بريدك او رسالتك , ولكن هل تعتقد انها تمر اليهم من غير فلتره ؟؟؟ متأكد
ان جوابك سيكون لا, فالموقع لا يضمن ما يقوم بإدخاله المستخدم , هل هو المطلوب , او
مجرد كلام ليس له معنى , اليس كذلك صحيحا ؟ فهنا تأتي فائدة تحرير واالتحكم بالنصوص
, وسوف نستعرض اليوم دوال كثيره تجعلك تتحكم بالنصوص لكي تقوي برامجك وتجعلها محميه
وقويه.
تستخدم هذه الدوال لكي نضمن ان المستخدم لي يضع اي فراغات
في المدخل , يمكن ان تقول هذا الشيئ غير ضروري , ولكنه ضروري اذا كنت ستحفظ هذه المعلومه
في قواعد البيانات او تريد مقارنة النص , فالمسافه محسوبه في النصوص , الداله
trim تقوم بألغاء اي مسافات من بداية ونهاية النص, لاحظ
المثال التالي:
ملاحظه ( كل خواص التحويل تبدأ بي علامة % , ولو احتجت
يوما ما الى طباعة هذا الرمز الى المتصفح استخدم الطريقه %% ) , لكي تعرف الخواص الاخرى
في التحويل لاحظ المثال الجدول التالي
| النوع |
المعنى |
| b |
يترجم على شكل عدد صحيح ويطبع على شكل ثنائي
|
| c |
يترجم على شكل عدد صحيح ويطبع على شكل على حروف |
| d |
يترجم على شكل عدد صحيح ويطبع على شكل عشري |
| f |
يترجم على شكل عدد عشري ( double
) ويطبع على شكل عشري ( float ) |
| s |
يترجم على شكل نص ويطبع على شكل نص |
الدوال strtoupper
و strtolower و ucfirst
و ucwords :
الداله strtoupper تقوم بجعل
كل الحرووف كبيره ( باللغه الانجليزية ) , اي تقوم بتحويل a
الى A وهكذا
الداله strtolower تقوم بجعل
كل الحروف صغيره ( باللغه الانجليزية ) اي تقوم بتحويل A
الى a وهكذا
الداله ucfirst تقوم بجعل اول
حرف من الجمله بالحاله الكبيره
الداله ucwords تقوم بجعل اول
حرف من كل كلمه في النص الى الحاله الكبيره
والناتج هو

جمع وتفصيل النصوص :
في كثير من الاحيان نريد ان نفصل نص عن النص الكلي , لكي
نقارن او نتحكم او اي شي اخر , وبعض الاحيان نريد ان نقوم بجمع النصوص مع بضها البعض
وسوف نتعلم الان الطرق لعمل ذلك ,
الداله explode
و implode و join :
تستخدم الداله explode لفصل
النص عن بعضه البعض وتقوم بإرجاع الناتج على شكل مصفوفه , فلو ان المستخدم ادخل بريده
الالكتروني , ونريد ان نعرف ماهي الشركه الي يستخدمها سوف نقوم بالتالي :

الدالتين implode و
join متطابقه تماما , فلو اردنا جمع نص مع بعضه البعض سوف
نقوم بعمل التالي:

الداله substr:
تستخدم هذه الداله لتعطيك تحكما في نص جزء من نص اكبر بتحديد
البدايه والنهايه وتقوم بإرجاع النص المطلوب, فمثلا لو لديك النص
( Hello World ) وتريد ان تأخذ كلمة hello
فقط , فسوف تقوم بالتالي:

الان لو تلاحظ كيفية عمل الداله فهي
كالتالي ( قارن الارقام مع الصوره بالاسفل ) :
1 - النص المراد ان تأخذ جزأ منه
2 - مكان البدايه
3 - مكان النهايه

نبدأ النصوص دائما من 0 , وفي مثالنا
من 0 الى 5 , نعني به 0 و 1 و 2 و 3 و 4 , لاحظ التالي:

لو اردنا الجمله من مكان معين الى النهايه
فسوف نضع قيمة البدايه فقط , لاحظ التالي:

وسوف ينتج لنا llo world
مقارنة النصوص
:
في السابق قلنا اننا لو اردنا ان نقارن
سوف نستخدم == او === اليس ذلك صحيحا ؟ هناك طرق اخرى للمقارنه سوف نراها الان ,
الدوال
strcmp و strcasecmp :
هذه الدوال تستخدم لمقارنة النصوص ,
فالداله strcmp تقوم بإعطائنها نصين وتقوم بمقارنتهما ,
اذا كانو متساوييان سوف ترجع لك القيمه 0 , اما اذا كان الاول اكبر من الثاني سوف ترجع
رقم اكبر من الصفر واذا كان اصغر سوف ترجع قيمه اقل من الصفر ( اي بالسالب ) , وهذه
الداله حساسه لحالة الاحرف , لاحظ التالي:

الداله strcasecmp
مطابقه للداله strcmp والفرق ان
strcasecmp حساسه لحالة الاحرف
الداله
strlen :
تستخدم هذه الداله لمعرفة طول نص معين
, وطريقتها كالتالي:

مطابقة وبحث
وتغيير النصوص :
دوال البحث
عن النصوص strstr و strchr و
strrchr و stristr :
الدالتين strstr
و strchr متطابتقين تماما و حساسه لحالة
الاحرف , مع ان الثانيه تستخدم للبحث عن الاحرف ولكن الاولى تؤدي نفس العمل , وهي الافضل
والمناسبه دائما , طريقة هذه الداله كالتالي:

1 - النص الكلي
2 - الكلمه المراد البحث عنها
اذا وجدت الداله كلمه مطابقه فسوف تقوم
بإرجاع الكلمه ثم باقي الجمله , وتهمل ما قبل الكلمه التي عثر عليها , لاحظ ناتج مثالنا
بالاعلى

بالنسبه للداله stristr
فهي مطابقه ل strtsr والفرق هو انها غير حساسة لحالة الاحرف,
اما الداله strrchr فهمي ايضا مطابقه والفرق الوحيد هو انه
اذا كانت الكلمه مكرره مرتين في الجمله , فسوف تقوم بإرجاع النص من اخر مكان تكررت
فيه الجمله, على عكس strstr فهمي تقوم بإرجاع النص من اول
مكان تكررت فيه الجمله
دوال تحديد
اماكن النص strpos و strrpos
:
هذه الدوال مشابه تقريبا الى
strstr والفرق ان هذه الدوال تقوم بإرجاع المكان الرقمي للنص ,
لاحظ المثال التالي,

وسوف تقوم هذه الداله بإرجاع الرقم
6 , لان الكلمه world بدأت من الخانه 6 , قم بالعد وقارن
:)
الداله strrpos
سوف تقوم بأرجاع اخر مكان ظهر به النص على عكس strpos
, كما تعلمنا في دوال البحث في الاعلى
دالة تغيير
النصوص str_replace :
تقوم هذه الداله str_replace
بإيجاد نص وتغييره , وهي مفيده جدا لتتغير السريع , وطريقتها كالتالي:

1 - الكلمات التي نريد استبدالها
2 - الكلمات الجديده
3 - الجمله
لاحظ انه بالامكان ان نجعل الكلمات
الجديده , والكلمات القديمه , في مصفوفه كل واحده على حده , لكي نقوم بإستبدال اكثر
من كلمه , ويمكن ايضا من غير مصفوفه , حيث ان جميع الحالات مسموحه , واصبحت هكذا من
نسخة PHP رقم 4.0.5
سؤال على الدرس :
1 - قم بإنشاء نموذج مراسله بريدية , فيه اسم المرسل
, البريد , الرساله , وقم بوضع بعض تحكمات النصوص ( على سبيل المثال البريد لا يكون
اقل من 3 احرف , الرساله لا تحتوي على كلمات غير لائقه )
الدرس القادم :
سوف نتعرف في الدرس القادم على مايسمى ( regular
expressions )