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

الموضوع: اريد دالة لجرب كود ما بين قوسين!!!!!!!!

  1. #1
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270

    اريد دالة لجرب كود ما بين قوسين!!!!!!!!



    السلام عليكم

    اخواني ابحث عن دالة تقوم باعادة كود ما بين رمزين

    مثلا
    لدينا الكود التالي

    كود PHP:

    <table width=200 cellspashing=1 cellpadding=2 border=1>
    <
    tbody>

    <
    tr>
    <
    td>
    تجربة
    </td>
    </
    tr>

    </
    tbody>
    </
    table>

    <!-- 
    Loop -->

    <
    table width=200 cellspashing=1 cellpadding=2 border=1>
    <
    tbody>

    <
    tr>
    <
    td>
    $center
    </td>
    </
    tr>

    </
    tbody>
    </
    table>

    <!-- 
    Loop -->



    <
    table width=200 cellspashing=1 cellpadding=2 border=1>
    <
    tbody>

    <
    tr>
    <
    td>
    تجربة
    </td>
    </
    tr>

    </
    tbody>
    </
    table
    اريد دالة تستخرج الكود او النص الموجود بين الوسمين <!-- Loop --> و <!-- Loop --> ملاحظة ممكن يكون الكود طويل شوي فاريد دالة قادرة على عمل المطلوب

    وشكرا لكم اخواني في الله وبارك الله فيكم





    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر



  2. #2
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    السلام عليكم
    اخواني جربت كتابة دالة ولاكن للاسف لم تعمل

    وهذا الكود الذي استخدمته

    طبعا نطلب الدالة من خلال هذا الامر
    كود PHP:
    GetBetween("news"); 


    وهذا هو الكود الذي عملته (لم تعمل ولم تظهر نتائج!!!!!!!!!!!!!!!

    كود PHP:

        
    function GetBetween($blockname)
          {
            
            
    $body 


    <table width=200 cellspashing=1 cellpadding=2 border=1>
    <tbody>
    <!-- Start Loop: news -->
    <tr>
    <td>
    $center
    </td>
    </tr>
    <!-- End Loop: news -->
    </tbody>
    </table>



    <div align="right">$right $extra</div>
    <div align="left">$left</div><br> 
    <div align="center">$center</div>


    '
    ;



            
    $start "<!-- Start Loop: $blockname -->";
            
    $head_len strlen($blockname) + 21;

            
    $ex_start explode($start,$body);
            
    $ex_start_len strlen($ex_start[0]);
            


            
    $end "<!-- End Loop: $blockname -->";
            
    $foot_len strlen($blockname) + 19;

            
    $ex_end explode($end,$body);
            
    $ex_end_len strlen($ex_end[0]);



            
    $act_block_len $ex_end_len+$head_len  $ex_start_len+$foot_len;
            
    $middle substr('$body'$ex_start_len$act_block_len); 
        
            return 
    $middle;
          } 






    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر


  3. #3
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    354


    عزيزي هذا الكود عالسريع

    كود:
    <?php
    
    $code='<table width=200 cellspashing=1 cellpadding=2 border=1>
    <tbody>
    <!-- Start Loop: news -->
    <tr>
    <td>
    $center
    </td>
    </tr>
    <!-- End Loop: news -->
    </tbody>
    </table>
    
    <div align="right">$right $extra</div>
    <div align="left">$left</div><br>
    <div align="center">$center</div>
    ';
    
    
    function getbetween($code) {
    
    $trash=strstr($code,"<!-- End Loop: news -->");
    $code=str_replace($trash,"",$code);
    $code=strstr($code,"<!-- Start Loop: news -->");
    $code=str_replace("<!-- Start Loop: news -->","",$code);
    $code=htmlspecialchars($code);    //or without the htmlspecialcharsin order to view as html!
    return $code;
    }
    
    
    
    
    print getbetween($code);
    
    
    
    ?>
    هذا الكود كتبته عالسريع .. ممكن يكون بطريقه اسهل لكن هذا ما طلع معي الان
    الشرح

    النص كامل موجود في متغير $code
    بعدها نعمل داله انا سميتها getbetween
    في اول سطر تاخد كل ما هو موجود بعد وسم الاغلاق (يتضمن الوسم نفسه) وتضعه في متغير trash يعني قمامه بالعربي
    في السطر الثاني من الداله .. نستبدل ال trash يعني كل ما هو موجود بعد الوسم ويتضمنه ب "" يعني بلا شئ! بكلمات اخرى نحذفه!
    في السطر الثالث ال $code يتحول لما هو موجود بعد وسم الفتح.. ويتجاهل ما قبله
    وبعدها الامر الذي نستبدل وسم الفتح بلا شئ يعني نحذفه وخلاص
    في السطر الي بعده عملت انا htmlspecialchars لكن لك الحريه ان تحذف هذا السطر.. ان كنت تريد ان تضع النص ككود html وليس كنص..
    وبعدها الداله ترجع المتغير بعد كل التعديلات
    ونغلق الداله
    وبعدها نطبع المتغير بعد تمرير الداله عليه للتجربه
    عذرا ان كنت نسيت بعض الدوال واعطيتك الطريقه الطويله






  4. #4
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    السلام عليكم
    بارك الله فيك
    اخي العزيز
    الطريقة سليمة 100% بارك الله فيك
    طويلة نوعا ما ولاكنها واضحه

    ولاكن اخي طيب حتواجهنا مشكلة في حالة ان الكود نفسه اتكرر اكثر من مرة !!!

    ما هي طريقة العمل في حالة انه اصبح الكود عنا هذا


    كود PHP:


    $code
    ='<table width=200 cellspashing=1 cellpadding=2 border=1>
    <tbody>
    <!-- Start Loop: news -->
    <tr>
    <td>
    $center
    </td>
    </tr>
    <!-- End Loop: news -->
    </tbody>
    </table>


    <table width=200 cellspashing=1 cellpadding=2 border=1>
    <tbody>
    <!-- Start Loop: news -->
    <tr>
    <td>
    $center
    </td>
    </tr>
    <!-- End Loop: news -->
    </tbody>
    </table>


    <div align="right">$right $extra</div>
    <div align="left">$left</div><br>
    <div align="center">$center</div>
    '

    وبارك الله فيك يا طيب وكثر الله من امثالك





    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر


  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    354


    اهااااااا لو تكرر اكثر من مره يجب ان نغير طريقة العمل
    انا عملت شي مشابه بالجافا سكربت

    الفكره هي ان تفحص متى ياتي اول وسم فتح وتحذفه وتحذف ما قبله .. وبعدها تفحص وسم الاغلاق وتأخد فقط ما قبله.. لاحظ اننا حذفنا ما قبل وسم الفتح اذا سيتبقى لدينا فقط ما بداخل الوسم ونضعه بمتغير ثم نحذف
    وعندها نعود للعمليه مره اخرى.. طبعا الوسم الاول قد تم حذفه اذا سيفحص بخصوص الوسم الثاني

    نعود للعمليه بواسطة تكرار for وطوله هو مجموع الوسوم في النص

    تحياتي






  6. #6
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    السلام عليكم
    شكرا اخي الفكرة وصلت ولاكن كيف طريقة اخذ الكود ما قبل ؟؟؟ (الطريقة الي عم افكر فيها جدا جدا طويلة)

    يعني ما هي الدوال المستخدمة وطريقة عملها

    واذا في مجال تضيفني عندك في المسنجر اخي العزيز... عشان اذا واجهتني مشكلة او سؤال سريع الي الاقي ايجابة سريعة

    اذا في مجال ياريت تضيفني على المسنجر webmaster@palintefada.com

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

    وشكرا وبارك الله فيك اخي





    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر


  7. #7
    عضو شرف
    تاريخ التسجيل
    Apr 2002
    المشاركات
    1,379


    كود PHP:
    <?
    $start 
    '<!-- Start Loop: news -->';
    $end   '<!-- End Loop: news -->';
    preg_match_all("/$start(.*)$end/isU",$code,$out);
    print_r($out);
    ?>
    الكود للتجربه
    http://daif.net/script/preg_match_all.php





    __________________
    ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
    الاتصال: daif@daif.net او جوال: 0556639884
    الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .

  8. #8
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    السلام عليكم

    بهذه السهولة اخي daif ؟؟؟؟؟؟؟؟؟؟؟؟

    احبطني ههههههههههههههه
    الكود الي انا عملتو عبارة عن 20 سطر !!!!!!!!!!!!!!!!!! انت في 3 اسطر wow

    اخي بارك الله فيك ولاكن ياريت توضيح للكود شوي عشان اعرف ايش معناه

    وخاصة الدالة preg_match_all
    وشكرا





    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر


  9. #9
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    السلام عليكم

    اخي العزيزي طبعا لم افهم تفاصيل الكود ولاكني طبقته ولاكن عندما عملت print طلع عندي كلمة array

    اكيد عامل شي غلط انا هذا الكود

    طبعا مع مراعاة ان $this->loop تحتوي على الكود كامل وهون الكود كان


    كود:
    <!-- Start: news -->
    <table width=200 cellspashing=1 cellpadding=2 border=1>
    <tbody>
    <!-- Start Loop: news -->
    <tr>
    <td>
    $center
    </td>
    </tr>
    <!-- End Loop: news -->
    </tbody>
    </table>
    <!-- End: news -->
    وهذا كود الدوال
    كود:
    
    
    class Template
    {
    	
    	var $content;
    	var $vars;
    	var $loopcode;
    	var $loopvars;
    	var $head;
    	var $foot;
    	//var $blockname;
    	var $i=0;
    	
    	
    
    
    
    
    function GetBetween($blockname)
    {
    
    
    $headstart  = "<!-- Start: $blockname -->"; 
    $headend   = "<!-- Start Loop: $blockname -->";
    preg_match_all("/$headstart(.*)$headend/isU",$this->loop,$this->head);
    
    
    $footstart = "<!-- End Loop: $blockname -->"; 
    $footend   = "<!-- End: $blockname -->"; 
    preg_match_all("/$footstart(.*)$footend/isU",$this->loop,$this->foot);
    
    
    $codestart = "<!-- Start Loop: $blockname -->"; 
    $codeend   = "<!-- End Loop: $blockname -->"; 
    preg_match_all("/$codestart(.*)$codeend/isU",$this->loop,$this->loopcode);
    
    return $this->loopcode;
    
    }
    
    
    
    }






    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر


  10. #10
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    مجددا

    اسف لكثرة ردودي ولاكن اريد ان اوضح لك ما الذي اعمل به لتستطيع بوضوح مساعدتي.. لانو ممكن انت تحاول تفسر اشي وانا اكون افكر في اشي اخر!!!!!!!!!

    استاذ daif انا الان انتبهت انه انت مبرمج القالب السهل
    انا اعمل الان على عمل محرك بحث عن القوالب خاص في موقعي - لا اريد ان استخدم الذي قمت ببرمجته لاني لم افهمه واريد ان اعمل ملف خاص لكي استطيع مستقبلا تعديله وتطويره والسبب الثاني والاهم ان استفيد واتعلم من اغلاطي واكوادي بدلا من استخدام ملف جاهز


    الفكرة التي احاول تطبيقها هي كلتالي

    اولا استبدال متغيرات من القالب (عملتها والحمد لله 100%)
    ثانيا عمل loop وهذه التي لم استطع تنفيذها بعد!!!!!!!!!!!!

    الفكرة التي استخدمها هي تقسيم الكود المراد تكراره الى الراس والجسم والاقدام

    الرأس هو الكود ما بين <!-- Start: $blockname --> و <!-- Start Loop: $blockname -->
    والجسم هو الكود ما بين <!-- Start Loop: $blockname --> و <!-- End Loop: $blockname -->
    والقدم هو الكود ما بين <!-- End Loop: $blockname --> و <!-- End: $blockname -->

    وعندما اريد طلب الدوال اقوم بوضعه في حلقة تكرار اما while او for

    مثلا

    كود PHP:

    while($i 10)
    {

    $temp->GetBetween("news");
    $temp->assign('center','1 تجربة');
    print 
    $temp->DisplayLoop();

    $i++;

    طبعا هذه طريقة بديهية ولاكن خطوة خطوة (ملاحظة هذه اول مرة اتعامل فيها مع ال classes)

    قمت انا بارفاق الملف الذي يحتوي على كود ال class كامل الي قمت به الى هذه اللحظة

    واسف على الغلبة استاذي daif
    وبارك الله فيك





    الملفات المرفقة الملفات المرفقة
    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر


  11. #11
    عضو شرف
    تاريخ التسجيل
    Apr 2002
    المشاركات
    1,379


    $this->loopcode عباره عن مصفوفه تحتوي جميع الاكواد التى وجدتها بين العلامتين start و end ... وحسب الكود انت تريد اول نتيجه ... ستكون في العنصر الاول ... اكتب
    return $this->loopcode[0];





    __________________
    ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
    الاتصال: daif@daif.net او جوال: 0556639884
    الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .

  12. #12
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    السلام عليكم

    اخي العزيز طلع النتيجة التالي 222222222222222

    !!!!!!!!!!!!!!!!!!!!!!! يعني كلما تمر الحلقة يطبع رقم 2
    اي ان $this->loopcode[0] ترجع رقم 2 بدل كود !!!!


    الملف التالي فيه اخر كود بعد تحريره ووضع ال [0]

    بارك الله فيك





    الملفات المرفقة الملفات المرفقة
    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر


  13. #13
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    اهل من اجابة استاذي daif ؟؟؟؟

    المشكلة انه يجب استخدام الدالة print_r لطباعة النتيجة اما اذا وضعنا print لن تعمل !!!!!!!!

    ولاكن انا اريد كل قيمة تظهرلوحدها لا اريد ان يظهر
    Array ( [0] => center [1] => left [2] => right )

    كيف ممكن تغير العرض من خلال عند وضع echo $array[0]; يظهر اول نتيجة والخ


    لا اريد الباقي ان يظهر





    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر


  14. #14
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    ??????????????????

    يا اخي daif ياريت تكمل معروفك معي وتفيدني في حل هذه المشكلة!!!!!!!!!!!!!!!!!





    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر






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

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

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