للاسف هذه المدونة اصبحت ارشيف فقط، لمتابعة جديد مقالاتي يرجى زيارة موقعي الشخصي BassamShhadat.com

إنشاء الـ (( RSS )) بالـ (( PHP ))

تعرفنا في التدوينة السابقة على الشكل الاساسي لتوصيف الـ RSSØŒ اليوم ساتكلم عن إعداد الـ RSS بواسطة الـ PHP ØŒ بشكل عام المطلوب هو أن يكون مخرجات صفحة الـ PHP هو الشكل الاساسي للـ RSS فقط …

لنفرض أن عندنا قاعدة بيانات تحوي على بضائع في موقع تجارة إلكترونية، سنقوم باستخراج معلومات هذه المعلومات Ùˆ نقوم بتوصيفها في ملف RSS ….

الجزء الأول من الملف سيحوي على إدراج لملف الـ Config الذي يحوي معلومات الاتصال بقاعدة البيانات، بالاضافة الى توصيف أن الملف هو ملف XML و تعريفاً لقناة البث

<?php
require_once (‘config.php’);
echo “<?xml version=\”1.0\” encoding=\”utf-8\″?>
<rss version=\”2.0\”>
<channel>
<title>$site_name RSS</title>
<link>http://www.****.com</link>
<description>جديد البضائع</description>
<generator>http://www.redman4u.com</generator>
<language>en-ar</language>”;

لاحظ اني استخدمت الترميز utf-8 و أنت حر فيما تستخدم من ترميز مطابقاً لترميز قواعد البيانات في موقعك و إذا كنت تريد معلومات اكثر عن الترميزات في قواعد البيانات فعليك بموضوع الترميز في قواعد البيانات Mysql هو من افضل المواضيع التي قرأتها حول الترميزات باللغة العربية .

الجزء الثاني هو استخراج لمحتويات جدول البضائع من قاعدة البيانات و ذالك باستعلام Mysql بسيط جداً

$rss_query = “SELECT * FROM `pro` limit 10”;
$rss_result = @mysql_query ($rss_query);
while ($rss_row = mysql_fetch_array($rss_result)){

لاحظ قمت باستخراج 10 نتائج فقط أي أن الـ RSS ستقوم بنشر أخر عشر بضائع في قواعد البيانات فقط .

الجزء الثالث هو توصيف للـ item و ذالك ضمن حلقة تكرارية لعرض كامل الـ 10 نتائج

$cat_name=stripslashes($rss_row[cat_name]);
$details=stripslashes($rss_row[pro_details]);
echo ”
<item>
<title>$rss_row[pro_ar_name]</title>
<description><![CDATA[$details]]></description>
<link>http://www.****.com/?mod=pro&id=$rss_row[pro_id]</link>
<guid>http://www.****.com/?mod=pro&id=$rss_row[pro_id]</guid>
</item>”;
}

لاحظ أني استخدمت التابع stripslashes للتخلص من الـ (\) ضمن نتائج الاستعلام، Ùˆ استخدمت <![CDATA[$details]]> للتخلص من التنسيقات الموجودة في قسمة الحقل details ضمن قاعدة البيانات Ùˆ عرضه كنص بدون وسوم XHTML …

الجزء الرابع و الأخير هو إغلاق وسم الـ channel وrss و إغلاق كود الـ PHP

echo “</channel>
</rss>”;
?>

و هكذا تكون حصلت على رابط بث محتويات ((RSS)) في موقعك .



11 تعليق to “ “إنشاء الـ (( RSS )) بالـ (( PHP ))”

  1. يقول dotone:

    Hi there, it’s nice from you to write about this. I would do it differently if I was you. I’d use Zend_Feed class instead. It supports RSS and Atom formats, you can build and publish feeds using Zend_Feed.

  2. يقول FTM:

    هو فى التطبيقات المستخدمة لعمل المواقع الإلكترونية(frameworks) بيكون فية ملفات جاهزة تعمل ال rss من سطر واحد انت تكتبة إختصار للوقت يعنى ..بس اللى عجبنى فى الموضوع ان من كتر استخدام الواحد للطرق المختصرة التى بالفعل تختصر الوقت لكن نسى شكل ملف ال rss يعنى يمكن لو هافكر اكتبو يديويا بالطريقة السابقة مش هاعرف لانى لا أمارس…خرجت عن الموضوع قليلا
    موضوع مفيد شكرا لك

  3. يقول RedMan:

    شكراً لكم اخواني على الاضافات جزاكم الله خيراً، موضوعي كان ضمن مجموعة مواضيع حول الـ XML لذالك لم اتطرق لطرق البرمجة بقدر ما كنت اريد ايضاح مفاهيم الـ XML …

  4. يقول MaXeR:

    حلو ..
    بس اللي لاحظته في طرق سحب RSS عموماً هو أنها تقوم بسحب البيانات مباشرة (وهذي ميزة) لكن إذا تم حذف الموضوع في المدونة مثلا فملف RSS لا يقوم بتحديث بياناته وحذف البيانات التي تم حذفها من قاعدة البيانات.. وش السبب؟

  5. يقول RedMan:

    MaXeR : ملف الـ RSS يقوم بسحب البيانات من المدونة و الموقع آنياً و لكن برنامج قراءة الـ RSS هو الذي يحتفظ بالتدوينة المحذوفة و لتجرب ذالك احذف اشتراك المدونة من قارئ الخلاصات ثم اشترك من جديد ليقوم بجلب المواضيع مرة أخرى فتجد أنه لم يحضر الموضوع المحذوف .

  6. يقول brahim:

    ارجوك ساعدني على احداد blog

  7. يقول RedMan:

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

  8. يقول sheva:

    شكراً لك
    لقد استفدت من موضوعك فشكراً
    http://nizarq.com/

  9. السلام عليكم
    بارك الله فيك يا غالي
    جاري المتابعة

  10. يقول salma:

    الف شكر يا باشا

  11. يقول أبو حمزة:

    العنوان بين الوسمين:
    $rss_row[pro_ar_name]
    لا يظهر عندي على المتصفح فما هو السبب؟
    وبقية الأمور تمام.

اضف تعليق