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

الموضوع: طلب طريقة لجلب محتوى موقع لا يعتمد rss

  1. #1
    عضو جديد
    تاريخ التسجيل
    Aug 2007
    المشاركات
    23

    طلب طريقة لجلب محتوى موقع لا يعتمد rss



    السلام عليكم

    كيف أجلب محتوى موقع لا يعتمد على rss ويعتمد على php
    بحيث رابط الموضوع دائما يكون كالتالي
    http://www.site.com/lire.php?id=24274


    وهل يمكن تحديد كلمة فقط كي لا يجلب جميع المواضيع ؟


    شكرا مسبقا







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


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

    يمكن استخدام get_file_contents أو الجافاسكربت (دوم)

    او php dom عن طريق نسخة ال oop عن طريق الكلاس domDocument
    أو نسخة الدوال المنفردة.

    هذا كود كنت قد كتبته لجلب الدروس الخاصة بالشيخ محمد حسان من موقع طريق الاسلام.

    صفحة الشيخ تحوي دروس ،سلاسل ومجموعات.

    هذا الكود يجلب الدروس فقط:
    كود PHP:
    <?php
    function getMedia($url){
    $doc = new DOMDocument();
    @
    $doc->loadHTMLFile($url);
    $code =$doc-> getElementsByTagName("code");
    $media = array();
    foreach(
    $code as $link){
    if (
    $link->getAttribute("class")=="filePath")
    $media [] = $link->nodeValue;
    }
    return 
    $media;
    }
    $links = new SplQueue();
    $doc = new DOMDocument();

    @
    $doc->loadHTMLFile('http://www.islamway.com/?iw_s=Scholar&iw_a=lessons&scholar_id=7');
    $urls = @$doc->getElementsByTagName('a');
    foreach(
    $urls as $url){
    if (
    strpos($url->getAttribute('href'),"lesson_id")>0)
    $links->enqueue($url);
    }

    foreach (
    $links as $link){
    if (!
    strpos($link->getAttribute("href"),"islamway.com")){
    $url ="http://islamway.com/".$link->getAttribute('href');
    echo
    "<a href=".$url.">".$link->nodeValue."</a><br>";
    }
    }


    ?>
    الدالة getMedia تجلب روابط الدرس(جزء 1،جزء 2..) في مصفوفة
    ولكن انتبه من هذه الطريقة لأنها تأخذ وقت طويل في اذا شغلتها لجميع الدروس وقد ينتهي زمن تشغيل الصفحة قبل ان تنهي عملها.
    وطبعًا بعد جلب البيانات المفروض ان تحفظها في قاعدة بيانات أو ملف html ثابت حتى تسرع من تشغيل الصفحة.

    هناك طريقة أخرى لتنفيذ الدالة getMedia وهي استخدام الكلاس domXpath والذي يمكن أن يعمل استعلام على كود ال html الذي في الصفحة.

    على العموم لغة php ليست اللغة المثالية لصنع البوت والأفضل استخدام لغة مثل c.






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

  4. #4
    عضو جديد
    تاريخ التسجيل
    Aug 2007
    المشاركات
    23


    السلام عليكم
    شكرا استاذي على المساعدة
    لكن لم افهم طريقة الاستعمال
    Fatal error: Class 'SplQueue' not found in C:\AppServ\www\dz.php on line 13
    ظهر هذا الخطأ
    ما الذي يجب ان اغيره ؟

    مشكور







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


    لا داع لتغيير اي شيء في الكود.

    كل ما في الامر اني استعملت كلاس splQueue مكان المصفوفة، وهذا الكلاس يعمل مع (PHP 5 >= 5.3.0)

    انتبه ان هذا الكود يعمل مع الاصدار الخامس من php واذا لم يكن لديك هذا الاصدار فلن يعمل.

    يمكنك استخدام هذا الكلاس للاصدار الرابع
    http://www.php.net/manual/en/book.domxml.php

    الكود بعد ان وضعت المصفوفة مكان ال"دور" - Queue:
    كود PHP:

    <?php
    function getMedia($url){
    $doc = new DOMDocument();
    @
    $doc->loadHTMLFile($url);
    $code =$doc-> getElementsByTagName("code");
    $media = array();
    foreach(
    $code as $link){
    if (
    $link->getAttribute("class")=="filePath")
    $media [] = $link->nodeValue;
    }
    return 
    $media;
    }
    $links = array();
    $doc = new DOMDocument();

    @
    $doc->loadHTMLFile('http://www.islamway.com/?iw_s=Scholar&iw_a=lessons&scholar_id=7');
    $urls = @$doc->getElementsByTagName('a');
    foreach(
    $urls as $url){
    if (
    strpos($url->getAttribute('href'),"lesson_id")>0)
    $links[]=$url;
    }

    foreach (
    $links as $link){
    if (!
    strpos($link->getAttribute("href"),"islamway.com")){
    $url ="http://islamway.com/".$link->getAttribute('href');
    echo
    "<a href=".$url.">".$link->nodeValue."</a><br>";
    }
    }


    ?>











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

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

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