جلب محتوى RSS وحفظه في قاعدة البيانات

الخميس، 11 يوليو 2013 | |
اليوم سنشرح جلب محتوى RSS من أي خلاصة أخبارية وحفظها في قاعدة البيانات بواسطة كلاس lastRSS وثم نقوم بعرضها بصفحة واحدة بشكل بسيط او نقوم بانشاء عناوين وصفحة لكل خبر او مقال
اولاً سنقوم بتحميل الكلاس من هـنـا
ثم سنقوم بإنشاء قاعدة البيانات وسيكون تكوينها كالآتي
CREATE TABLE dig3st_rss (
id int(11) NOT NULL AUTO_INCREMENT,
title varchar(255) NOT NULL,
link varchar(255) NOT NULL,
content text NOT NULL,
PRIMARY KEY (id)
);
قمنا بإنشاء جدول اسمه dig3st_rss
وقمنا بإنشاء حقل id للخبر يقوم بالادخال التلقائي وهو مفتاح الاساس
وحقلين title , link من نوع varchar لعنوان الخبر ورابطه
وحقل content من نوع text لمحتوى التغذية

الآن سيكون ملف السكريبت يحتوي الآتي :
lastRSS.php : ملف الكلاس
db.php : ملف الاتصال بقاعدة البيانات
feed.php : ملف جلب الاخبار وإضافتها في قاعدة البيانات
show.php : ملف عرض عناوين الاخبار
news.php : ملف عرض الخبر في صفحة مستقلة

الان سنقوم بإنشاء ملف db.php للأتصال بقاعدة البيانات
<?php

$connectdb = @mysql_connect("localhost", "root", "123456") or die("خطأ في أتصال قاعدة البيانات");
@mysql_select_db("dig3st", $connectdb) ;

?>
والان إنشاء ملف feed.php لجلب الاخبار ووضعها بقاعدة البيانات
<?php

include "db.php";
include "lastRSS.php";

    $rss = new lastRSS;
    $rss->cache_dir = '/cashe';  
    $rss->cache_time = 5000;  

    if ($rs = $rss->get('http://www.dig3st.com/feed/')) {
    foreach ($rs['items'] as $item) {
         if (!mysql_fetch_array(
                mysql_query("SELECT id FROM
                                `dig3st_rss` where
                                     `title` = '".$item['title']."'")
                    )){

        mysql_query("INSERT INTO `dig3st_rss` (
                            `title` ,
                            `link` ,
                            `content`
                        )
                        VALUES (
                             '".$item['title']."',
                             '".$item['link']."',
                             '".$item['description']."'
                        )");
        }         }  
    }
?>

في البداية قمنا باستدعاء ملف الكلاس وملف الاتصال بالقاعدة
ثم أنشأنا كائن lastRSS
ثم حددنا مسار الملف الذي سيخزن فيه الكاش وملف الكاش يحتاج إلى ترخيص 777
وقمنا بتحديد زمن تحديث الكاش بالثواني يفضل ان تكون 1200 على الأقل ما يساوي 20 دقيقة
ثم قمنا بتحديد رابط الخلاصة لجلب الأخبار منه باستخدام الكلاس
ثم نفحص القاعدة اذا كان يوجد خبر بهذا العنوان وإذا كان الخبر موجود سيتجاهله واذا لم يكن موجود سيقوم بإضافته
الان عند فتح ملف feed.php من المتصفح سيقوم بجلب الاخبار وإضافتها إلى قاعدة البيانات

الان إنشاء ملف show.php لعرض عناوين الاخبار
<?php

 include "db.php";

 $sql = @mysql_query("select * FROM `dig3st_rss` order by id desc");
        while($row = mysql_fetch_object($sql)) {
            echo '<p>
                    <a target="_blank" href="news.php?id='.$row->id.'">
                    '.$row->title.'
                    </a><br />
                 </p>';
        }

?>
والنتيجة

اذا اردت عرض كل خبر في صفحة مستقلة سنقوم بتعديل بسيط على صفحة show.php
<?php

 include "db.php";

 $sql = @mysql_query("select * FROM `dig3st_rss` order by id desc");
        while($row = mysql_fetch_object($sql)) {
            echo '<p>
                    <a target="_blank" href="news.php?id='.$row->id.'">
                    '.$row->title.'
                    </a><br />
                 </p>';
        }

?>
والآن أنشاء ملف news.php
<?php

include "db.php";

$id = intval($_GET['id']);

$news = mysql_query("SELECT * FROM dig3st_rss where id = '".$id."' ");

$row = mysql_fetch_object($news);

echo "<a href='".$row->link."'>".$row->title."</a>";
echo "<br /><hr />";
echo htmlspecialchars($row->content);

?>
 صورة من عرض الخبر في صفحة مستقلة



” أفضل الصدقة أن يتعلم المسلم علما ثم يعلمه أخاه المسلم ،،

جميع الحقوق محفوظة Dig3st.com ©2013

شاركنا الكتابة