ترى كثيرا ان معظم المواقع تجعلك تضع معلومات وتقوم بإرسالها اليهم ,
سواء اسمك او بريدك او رسالتك , ولكن هل تعتقد انها تمر اليهم من غير فلتره ؟؟؟
متأكد ان جوابك سيكون لا, فالموقع لا يضمن ما يقوم بإدخاله المستخدم , هل هو
المطلوب , او مجرد كلام ليس له معنى , اليس كذلك صحيحا ؟ فهنا تأتي فائدة تحرير
واالتحكم بالنصوص , وسوف نستعرض اليوم دوال كثيره تجعلك تتحكم بالنصوص لكي تقوي
برامجك وتجعلها محميه وقويه.
تستخدم هذه الدوال لكي نضمن ان المستخدم لي يضع اي
فراغات في المدخل , يمكن ان تقول هذا الشيئ غير ضروري , ولكنه ضروري اذا كنت ستحفظ
هذه المعلومه في قواعد البيانات او تريد مقارنة النص , فالمسافه محسوبه في النصوص ,
الداله 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 )