النتائج 1 إلى 4 من 4

الموضوع: استبدال النصوص في PHP

  1. #1

    استبدال النصوص في PHP



    السلام عليكم

    إخوتي الأفاضل ،، اليوم جايب لكم دالة مفيدة كمان

    هذي الدالة ظهرت منذ إصدارة PHP3.0.6 وفي إصدارات PHP4 منذ PHP4.0.0 فما فوق

    وظيفة هذي الدالة هي استبدال النصوص من النوع الثنائي Binary في المتغيرات ..

    اسم الدالة : str_replace

    بكل سهولة سنخزن نص في متغير ونستبدل إحدى الكلمات في هذا النص بكلمة أخرى ..

    الصيغة العامة للدالة:
    كود PHP:
    mixed str_replace(mixed searchmixed replacemixed subject); 
    طبعاً لا تجرب الكود السابق لأنه لن يأتي بأي نتيجة مرضية معك!!
    وإنما هذا توضيح للدالة، فإن هذه الدالة تحتاج إلى 3 باراميترات تمرر إليها..
    الأول هو النص الثنائي الذي نريد البحث عنه لنستبدله بشيء آخر، واسم هذا المتغير هو search وهو من نوع mixed ..
    الثاني هو النص الثنائي الذي نريد استبدال النص الأول به، أي نريد حذف النص الأول ونضع بدلاً منه النص الثاني،، واسم هذا المتغير replace وهو من نوع mixed ..
    الثالث هو النص كاملاً، أو المتغير الكامل الذي نريد البحث والاستبدال فيه ، واسم هذا المتغير هو subject وهو من نوع mixed ..
    والدالة كاملة من نوع mixed أيضاً، لاحظ ذلك في بداية الجملة ..

    عوضاً عن هذه المقدمات، يمكنك المتابعة بالشرح حيث سيكون سهلاً إن شاء الله تعالى ؛

    الآن نريد تخزين قيمة نصية ثنائية Binary معينة في متغير وليكن اسمه text$ ثم نستبدل جزء منه بنص آخر..
    المثال التالي (الكود) سيوضح ويسهل المهمة إن شاء الله تعالى:
    كود PHP:
    <?
    $text 
    "This is sBForum website,, welcome here!!";
    Echo 
    $text;
    $text str_replace("This is","You are in",$text);
    Echo 
    "<BR><BR>$text";
    ?>
    قمنا في المثال السابق بطياعة جملتين على الشاشة ،، الأولى الجملة العادية المخزنة في المتغير text$ وهي:
    This is sBForum website,, welcome here!!
    ثم قمنا بالبحث عن This is واستبدالها بـ You are in في المتغير text$ وتخزين الناتج في نفس المتغير وحذف النص السابق ..
    ثم قمنا بطباعة الناتج فأصبح هكذا:
    You are in sBForum website,, welcome here!!
    وهكذا قمنا بعملية استبدال بسيطة ..!!

    من بداية إصدارة PHP4.0.5 فما فوق ، أصبح بالإمكان استخدام المصفوفات في جميع باراميترات دالة str_replace

    فمثلاً إذا كان الباراميتر المسمى subject - وهو المتغير الذي نبحث فيه - عبارة عن مصفوفة Array فإن عملية البحث ستتم في جميع مدخلات المصفوفة (جميع عناصرها).. وسيكون الناتج أيضاً عبارة عن مصفوفة ..

    هل ترغبون في طرح مثال لذلك؟؟ هيا بنا...

    كود PHP:
    <?

    $text 
    = array("There are four things",
        
    "This is the fourth thing",
        
    "I'm the fourth in my family",
        
    "four");
    Echo 
    "$text[0]<BR>$text[1]<BR>$text[2]<BR>$text[3]";
    $text str_replace("four","4",$text);
    Echo 
    "<BR><BR><BR>$text[0]<BR>$text[1]<BR>$text[2]<BR>$text[3]";

    ?>
    في المثال السابق قمنا بتخزين 4 عناصر في مصفوفة Array تسمى text$ كل عنصر منها يحتوي على كلمة four ..
    يتم أولاً طباعة محتويات المصفوفة على الشاشة ..
    ثم يتم استبدال كلمة four بالرقم 4 في جميع هذه الجمل (العناصر).. ثم يتم طباعة العناصر بعد الاستبدال..
    لاحظ الاختلاف بين طباعة عناصر المصفوفة في المرة الاولى وبين طباعة عناصر نفس المصفوفة بعد الاستبدال..
    في العنصر الأول كانت الجملة : There are four things
    بعد الاستبدال أصبحت: There are 4 things
    الجملة الثانية: This is the fourth thing
    بعد الاستبدال: This is the 4th thing
    الجملة الثالثة: I'm the fourth in my family
    بعد الاستبدال: I'm the 4th in my family
    العنصر الرابع (الأخير): four
    بعد الاستبدال: 4

    وهكذا أصبح لدينا مثالين كافيين لفهم كيفية الاستبدال بواسطة دالة str_replace ..

    ما رأيكم أن نأخذ الآن مثالاً بحيث إذا كان الباراميتر search وreplace عبارة عن مصفوفات ؟؟!
    هيا بنا الآن إذاً ..
    كود PHP:
    <?
    $text 
    "Hi all, how are you??";
    Echo 
    $text;
    $search = array("Hi","you");
    $replace = array("Hello","u");
    $text str_replace($search,$replace,$text);
    Echo 
    "<BR><BR>$text";
    ?>
    في المثال السابق، قمنا أولاً بتخزين قيمة في المتغير text$ وهي:
    Hi all, how are you??
    ثم قمنا بتعريف مصفوفتين، الاولى تتضمن الكلمات التي نريد البحث عنها في المتغير text$
    والثانية تتضمن الكلمات التي نريد استبدال الكلمات التي بحثنا عنها بها ..
    فالكلمة الأولى المبحوث عنها هي Hi وستستبدل بكلمة Hello
    والكلمة الثانية المبحوث عنها هي you وسوف تستبدل بـ u
    يمكنك أيضاً زيادة عدد الكلمات المبحوث عنها عن طريق زيادة عدد عناصر المصفوفة الأولى search$
    ثم زيادة عدد عناصر المصفوفة الثانية replace$
    ولكن، ماذا إذا كانت عدد عناصر المصفوفة الثانية أقل من الأولى؟؟
    إذا حصل ذلك، فإن مترجم PHP سيعتبر أن العناصر الناقصة هي عبارة عن عناصر خالية وسيتم استبدال العناصر المقابلة لها بقيم فارغة..
    .. أما إذا كانت المدخلات المبحوث عنها في الباراميتر search$ عبارة عن مصفوفة والمدخلات البديلة في الباراميتر replace$ عبارة عن متغير عادي (لا مصفوفة) فإن عناصر المصفوفة ستستبدل جميعها بنفس العنصر الوحيد الموجود في الباراميتر replace$

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





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074


  2. #2
    عضو فعال
    تاريخ التسجيل
    Feb 2004
    المشاركات
    1,318


    جزاك الله خير اخوي





    __________________
    سبحان الله وبحمده سبحان الله العظيم

    منتديات ترنيمة

  3. #3
    عضو فعال
    تاريخ التسجيل
    Nov 2005
    المشاركات
    1,283


    درس جميل جدا الف شكر اخى الكريم





    __________________
    سبحان الله وبحمده ... سبحان الله العظيم.
    إقرأ .. لتتعلم
    [AJAX] سكربت إتصل بنا (ديف كونتاكت) النسخة 2.3.2
    للتواصل ..

  4. #4


    شكراً لمرورك وتعقيبك اخوي alsahernet

    والعفو اخوي -Developer-





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض