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

الموضوع: من فضلكم ارجو الرد على هذا الاستفسار عاجل

  1. #1

    Exclamation من فضلكم ارجو الرد على هذا الاستفسار عاجل



    السلام عليكم ورحمة الله وبركاته
    ارجو من مبرمجى بى اتش بى مساعدتى فى هذا الاستفسار وهو
    فى بحثى داخل موقع php.net عن دالة preg_replace_callback
    وجدت هذا المثال
    كود PHP:
      <?php
    $input 
    "plain [indent] deep [indent] deeper[/indent]deep[/indent]plain";

    function 
    parseTagsRecursive($input)
    {

        
    $regex '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#';

        if (
    is_array($input)) {
            
    $input '<div style="margin-left: 10px">'.$input[1].'</div>';
        }

        return 
    preg_replace_callback($regex'parseTagsRecursive'$input);
    }

    $output parseTagsRecursive($input);

    echo 
    $output;
    ?>
    وهذا ما كنت ابحث عنه ولكن ينقص شئ
    ما ابحث عنه هو البحث عن التاجات بشكل معين داخل صفحات html
    برجاء الرد بالكود ويرجى شرح اجزائه





    __________________
    كنت هنا ..


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


    الرجاء وضع صفحة ال html التي تريد تحليلها

    مع الطريقة الخاصة التي تريد البحث بها

    والغرض من هذا الكود حتى استطيع مساعدتك

    بانتظارك






  3. #3


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

    كود PHP:
    <html>
    <
    head>
    </
    head>
    </
    html
    اريد البحث بطريقة ما تمكننى من اظهار التاجات حتى وان كانت
    تاجات فرعيه من تاجات اخرى يتم تقسيمها بشكل صحيح

    ارجو ان تكون وصلتك فكرتى





    __________________
    كنت هنا ..

  4. #4
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    سوف استخدم كلاس domDocument وكلاس domNodeلكي اطبع كل التاغات التي في الملف حسب ترتيبها
    في ملف html، ومن هذا المثال اعتقد سوف تتمكن من الوصول إلى اي تاغ تريده، وعرضه بالطريقة والترتيب الذي تريد.

    القسم الأول من الكود(احضار ملف ال html)
    كود PHP:
    $dom = new DOMDocument();
    $dom->loadHTMLFile("page.html");
    $html $dom->getElementsByTagName("html")->item(0);
    PrintChildElements($html->childNodes,""); 
    في البداية عرفنا الكلاس ثم احضرنا الصفحة page.html التي سوف نحللها، وطبعًا ممكن ان تضع مكان اسم الصفحة رابط لصفحة بموقع.

    وبعد ذلك احضرنا التاغ html وهو التاغ الرئيسي في الملف. وتحته يوجد تاغات الhead وال body والتي بدورها تحوي تاغات"وسوم" فرعية.
    مثل title : هو وسم فرعي لل head لأننا نضعه داخله.
    لكي نصل إلى وسم حسب اسمه ننفذ:
    كود PHP:
    $html $dom->getElementsByTagName("html")->item(0); 
    ماهي دالة item?
    لو نفذنا:
    كود PHP:
     $dom->getElementsByTagName("html"
    سوف يرجع لنا كائن من نوع DOMNodeList
    أي عبارة عن قائمة تحوي كل الوسوم التي تحمل هذا الاسم
    الكلاس:
    http://www.php.net/manual/en/class.domnodelist.php

    ولكي نصل إلى node محدد نستخدم الدالة item

    لكي نصل إلى الوسوم الفرعية لوسم معين ننفذ الدالة الفرعية childNodes
    لو نفذنا :
    كود PHP:
    $html $dom->getElementsByTagName("html")->item(0);
    echo 
    $html->childNodes->length 
    سوف يطبع لنا في حالتنا 2.
    وهو عدد الوسوم الفرعية للوسم html
    الوسوم الفرعية هي head و body

    ولو نفذنا نفس الدالة على الوسم head سيظهر لنا الوسوم الفرعية له

    القسم الثاني(اظهار جميع الوسوم الفرعية لوسم معين)
    نستعمل الدالة التالية:
    كود PHP:
    function PrintChildElements($domList,$level){
    if (
    $domList->length ==0)
    return ;
    else{
    $level++;
    foreach(
    $domList as $item){
    if (
    $item->nodeName !="#text"){
    echo 
    $level." ".$item->nodeName."<br>";
    PrintChildElements($item->childNodes,$level);

    }
    }


    }

    انصحك بمراجعة الكلاسات التالية:
    http://www.php.net/manual/en/class.domnodelist.php
    http://www.php.net/manual/en/class.domdocument.php
    http://www.php.net/manual/en/class.domnode.php


    المثال في المرفقات





    التعديل الأخير تم بواسطة ahmad sadiq ; 12-05-2011 الساعة 02:17 AM

  5. #5


    السلام عليكم شكرا على الاهتمام بالموضوع
    لكن المشكله يا اخى انى اعرف هذا الكلاس ولكنه غير مضاف على PHP4
    بالاضافه انى اريد تعلم اساليب استخدام هذه الداله حتى اتمكن من البحث عن النصوص بشكل
    متقدم اكتر
    لو كان عندك تعليم شامل له اكون شاكر جدا لك وياريت يكون سهل ومفسر لان
    http://www.regular-expressions.info
    صعب فى شرحه





    __________________
    كنت هنا ..

  6. #6
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    آسف لا استطيع مساعدتك بالنسبة لهذه الدالة

    اما بالنسبة لل dom فهو متواجد في الجافاسكربت

    ويمكن تطبيق المثال على الجافاسكربت ايضًا
    ولكن بما ان المنتدى لل php كتبت الكود بها

    راجع دروس الاخ عبد الله عيد للمستوى المتوسط






  7. #7
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    على فكرة هناك نسخة لل dom لل php4
    وهي:
    http://php.net/manual/en/book.domxml.php

    بالمناسبة لا تفرق اذا استعملت الدوال لل xml أو ال html لأن كلاهما تكتب بال tags






  8. #8


    شكرا جدا يا اخوان على التعاون معى
    سوف استعمل دوم مؤقتا حتى اجد شرح
    لهذه الداله
    بالنسبه للاخ ahmed فالجافا سكربت عباره عن نظام دوم
    وشاكر جدا لتعاونك معى





    التعديل الأخير تم بواسطة أحمد الهادي ; 07-03-2010 الساعة 10:24 PM سبب آخر: خطا املائى
    __________________
    كنت هنا ..

  9. #9
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    اخي الكريم بالنسبة للدالة التي وضعتها...

    هي تقوم بالبحث عن وسوم bb محددة،لاستعمالها مع ال html نستعمل:
    كود PHP:
    <?php
    $input 
    "plain <div> deep <div> deeper </div> deep  </div> plain";

    function 
    parseTagsRecursive($input)
    {

        
    $regex '#\<div>((?:[^[]|\[(?!/?div])|(?R))+)\</div>#';

        if (
    is_array($input)) {
        
            
    $input '<div style="margin-left:  10px">'.$input[1].'</div>';
        }

        return 
    preg_replace_callback($regex'parseTagsRecursive'$input);
    }

    $output parseTagsRecursive($input);
    echo 
    $output;

    ?>
    هنا الدالة تبحث عن وسم div ، وما عداه يتم طباعته كأي مخرج آخر.

    يعني لو بدلنا المدخل إلى:
    كود PHP:
    $input "plain <div> deep <b> deeper </b> deep  </div> plain"
    سوف يتم طباعة كلمة deeper مشددة لأنه سيطبعها ك html

    ما فهمته من عمل الدالة preg_replace_callback
    انها تبحث عن طريق التعابير القياسية وتستدعي الدالة في البارامتر الأخير لتقوم بعملية التبديل.

    أي ان الشرط:
    كود PHP:
    if (is_array($input)) {
        
            
    $input '<div style="margin-left:  10px">'.$input[1].'</div>';
        } 
    يتنفذ لكل تاغ نجده.

    لأستعمالها لإيجاد اي تاغ نكتب:
    كود:
     $regex = '#\<*.>((?:[^[]|\[(?!/?*.])|(?R))+)\</*.>#';
    لتعلم التعابير القياسية هناك كتاب جيد يشرحها وهو:
    sams teach yourself regular expressions in 10 minutes

    الملف في المرفقات


    شكرا جدا يا اخوان على التعاون معى
    سوف استعمل دوم مؤقتا حتى اجد شرح
    لهذه الداله
    بالنسبه للاخ ahmed فالجافا سكربت عباره عن نظام دوم
    وشاكر جدا لتعاونك معى
    كنت اقصد ان الدوال متشابهة بالنسبة للتعامل مع الوسوم





    التعديل الأخير تم بواسطة ahmad sadiq ; 12-05-2011 الساعة 02:17 AM

  10. #10


    شكرا يا اخ احمد على ردك وهذا الكتاب يبدو قيم
    سوف اقوم بدراسته فى وقت لاحق واقوم بالتعليق عليه

    لدى سؤال لك اود معرفته اذا كنت لا تعتبره تطفل
    ما هى اللغات التى تتقنها
    ومنذ متى وانت تعمل فى مجال البرمجه؟





    التعديل الأخير تم بواسطة أحمد الهادي ; 08-03-2010 الساعة 07:09 PM
    __________________
    كنت هنا ..

  11. #11
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


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

    وبعدها php في التاسع

    اما في الصف العاشر فقد علمونا في المدرسة html+javascript+asp
    بالاضافة للغة ال c

    وفي صفوف متقدمة علمونا visual c مع data structures(الآن يعلمون الجافا وال c#.net)

    عندما دخلت الجامعة تعلمت الجافا ومنها تعلمت برمجة الموبايل midlet وبرمجة ال applets
    وعلمونا ايضًا ال c/c++

    اما بالنسبة لي فلم "اعمل" بالبرمجة ابدًا

    وهذه هي قصة حياتي






  12. #12


    ماشاء الله قصه حياه مليئه بالكفاح
    ولكن خاتمة القصه لا تعجبنى بطل القصه لماذا لا يعمل بمجال البرمجه
    على الرغم من تعدد لغات البرمجه التى تعلمها؟





    __________________
    كنت هنا ..





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

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

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