السلام عليكم ورحمة الله وبركاته
كيف حالكم اخواني اخواتي ؟ ان شاء الله تكونوا بخير دايما , بعرف ممكن قسم منكم يلومني على التقصير في كتابة الدروس والشروحات لتعميم الفائدة لكن الظروف كانت صعبة اخر فترة وما كان سهل ابدا ادخل وافعل المدونة , لكن على كل حال اليوم انا جاي وجايب لكم معي درس مميز جدا , هالدرس يشرح كيفية استخراج بيانات ومعلومات اي خلاصة لأي موقع ما يعرف بالانجليزية RSS او Atom Feed وهو الامر الذي سيخدم اي مدير موقع يريد ربط موقعه بخدمات اخبارية مشهورة او حتى ادخال مواضيع مميزة من بعض المنتديات لموقعه الخاص وحفظه في قاعدة بيانات الموقع , طبعا الدرس للمستوى المتوسط بلغة البرمجة php .
في البداية رح نكتب الكود سوا وبعدين نقوم بشرحه وفي النهاية نتكلم عن بعض الفوائد لهذا الكود .
نبدأ بأسم الله
كود PHP:
<?php
// Code By : EbNCaNa
$xml = simplexml_load_file("http://www.mysadaqa.org/news-feed.xml");
$title = $xml->xpath("/rss/channel/item/title");
$link = $xml->xpath("/rss/channel/item/link");
$description = $xml->xpath("/rss/channel/item/description");
$total=0;
foreach($title as $value){
$total++;
}
for($i=0;$i<$total;$i++){
echo "Title: $title[$i]<br />";
echo "Link: $link[$i]<br />";
echo "Description: $description[$i]<br />";
echo "<br /><br />";
}
?>
شرح الكود : في السطر البرمجي الاول نقوم باستعمال الدالة simplexml_load_file ووظيفتها ادخال عناصر الملفات ذات الامتداد xml بداخل كائن وفي هذا الدرس سنقوم بالتجربة على خلاصة موقع مؤسسة الصدقة الجارية ( آخر اعمالي ) , من غير المفروض ان ينتهي عنوان خلاصة المواقع بالامتداد xml دائما فمثلا نهاية عنوان خلاصة مدونات وورد برس ينتهي بـ /feed/ ولكن محتوى الملف نفسه يجب ان يكون متلائم ومبنى باقي الملفات ذات الامتداد xml .
في السطر البرمجي الثاني نقوم بتعريف المتغير title$ والذي سيحمل لنا قيمة جميع عناوين اخبار الموقع والتي سيجلبها من الخلاصة حيث تعنون بالاسم title ويكون هذا المتغير على شكل مصفوفة , لكي نقوم بهذه الخطوة يجب علينا استعمال الدالة xpath ووظيفتها الاستكشاف والمرور عبر مختلف العناصر والتعليمات والخصائص لأي ملف صاحب الامتداد xml .
طبعا في السطرين البرمجيين الثالث والرابع نقوم بنفس العملية ولكن مع قيم اخرى وهي روابط الاخبار والمختصر لكل خبر .
في الاسطر 8-5 نقوم بحساب عدد جميع العناصر في الملف ( عدد الاخبار ) ونضع قيمة المجموع في المتغير total$ .
في الاسطر 14-9 نقوم بعمل حلقة تكرار وطالما ان قيمة المتغير i$ هي اقل من قيمة total$ فأن الحلقة ستبقى في تكرار مستمر , في كل مرة نقوم الحلقة باستخراج احد عناصر الصفحة وتعرضه لنا لحد الانتهاء وعرض جميع العناصر بشكل مرتب وسلس .
ملاحظة : لفهم الدرس بشكل افضل انصح بمشاهدة الكود المصدري لملف الخلاصة ومتابعة الشرح بنفس الوقت .
فوائد الكود :
1- يمكنك جلب الاخبار واخر التطورات من اي موقع يقدم خدمة الخلاصة وتنشرها بموقعك بشكل ديناميكي وليس يدويا .
2- يمكنك استعمال المخراجات لكي تقوم بنشرها في موقعك لكي لا تقوم بعمل استعلام جديد من قاعدة البيانات وهذا سيوفر من موارد الخادم .
3- يمكنك جلب اخر مواضيع منتدى معين يتميز بمواضيعه المتجددة وتقوم بنقله الى المنتدى الخاص بك وتخزين المحتوى في قاعدة البيانات لديك من دون تكلف عناء النقل اليدوي ( لا اشجع على نقل المواضيع بشكل عام ) .
4- يمكنك بناء خاصية للبحث بحيث تقوم بربط البرمجية بخلاصات مواقع حسب اختيارك وعندها يستطيع المستخدم البحث باكثر من موقع بنفس الوقت وبدون ان تقوم بتخزين المعطيات في قاعدة بيانات البرمجية .
هذه بعض الافكار والتي خطرت ببالي حاليا ولكني كما في كل مرة , اضع النواة واحب ان ارى المبدعين العرب يستحدثون طرق وافكار وبرمجيات مختلفة تقوم بالاساس على النواة .
اتمنى على الله ان يوفقني دائما لكي اوصل لكم المعلومة والفائدة بافضل واسهل الطرق الممكنة , واجدد توصيتي بعدم كتمان العلم .
نحو عالم عربي اسلامي مليء بالمبرمجين واصحاب العقول .
( النسخة الأصلية للموضوع من هنا )
اخوكم المحب : EbNCaNa