PHP المثال أجاكس قارئ آر إس إس
RSS Reader لقراءة آر إس إس.
أجاكس قارئ آر إس إس
في المثال التالي، سوف نظهر قارئ آر إس إس، التي يتم من خلالها تحميل محتويات من آر إس إس في حال لم يتم تحديث الصفحة:
RSS تغذية قائمة البيانات ...
أمثلة توضح - صفحة HTML
عندما يقوم المستخدم في القائمة المنسدلة أعلاه، حدد RSS تغذية، فإنه ينفذ المسمى "showRSS) (" وظيفة. يتم تشغيل هذه الوظيفة عن طريق الحدث "عند_التغيير":
<html> <head> <meta charset="utf-8"> <title>本教程(w3big.com)</title> <script> function showRSS(str) { if (str.length==0) { document.getElementById("rssOutput").innerHTML=""; return; } if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码 xmlhttp=new XMLHttpRequest(); } else { // IE6, IE5 浏览器执行代码 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("rssOutput").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","getrss.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <form> <select onchange="showRSS(this.value)"> <option value="">选择一个 RSS-feed:</option> <option value="rss">读取 RSS 数据</option> </select> </form> <br> <div id="rssOutput">RSS-feed 数据列表...</div> </body> </html>
وظيفة showRSS () تنفيذ الخطوات التالية:
- تحقق من RSS تغذية يتم تحديد
- إنشاء كائن مدعوم
- إنشاء وظيفة عندما يكون الملقم جاهز لأداء استجابة
- ملف على الملقم لإرسال الطلبات
- يرجى ملاحظة تضاف إلى نهاية معلمة URL (ف) (يحتوي على محتويات القائمة المنسدلة)
ملف PHP
ملف rss_demo.xml .
أعلى الصفحة هذا الملقم التي دعت إليها جافا سكريبت يسمى "getrss.php" ملفات PHP:
<?php // rss 文件 $xml="rss_demo.xml"; $xmlDoc = new DOMDocument(); $xmlDoc->load($xml); // 从 "<channel>" 中读取元素 $channel=$xmlDoc->getElementsByTagName('channel')->item(0); $channel_title = $channel->getElementsByTagName('title') ->item(0)->childNodes->item(0)->nodeValue; $channel_link = $channel->getElementsByTagName('link') ->item(0)->childNodes->item(0)->nodeValue; $channel_desc = $channel->getElementsByTagName('description') ->item(0)->childNodes->item(0)->nodeValue; // 输出 "<channel>" 中的元素 echo("<p><a href='" . $channel_link . "'>" . $channel_title . "</a>"); echo("<br>"); echo($channel_desc . "</p>"); // 输出 "<item>" 中的元素 $x=$xmlDoc->getElementsByTagName('item'); for ($i=0; $i<=1; $i++) { $item_title=$x->item($i)->getElementsByTagName('title') ->item(0)->childNodes->item(0)->nodeValue; $item_link=$x->item($i)->getElementsByTagName('link') ->item(0)->childNodes->item(0)->nodeValue; $item_desc=$x->item($i)->getElementsByTagName('description') ->item(0)->childNodes->item(0)->nodeValue; echo ("<p><a href='" . $item_link . "'>" . $item_title . "</a>"); echo ("<br>"); echo ($item_desc . "</p>"); } ?>
عند إرسال طلب من آر إس إس لملف PHP جافا سكريبت سوف يحدث:
- تحقق يتم تحديد أي آر إس إس
- إنشاء كائن DOM XML جديد
- تحميل RSS مستند XML في متغير
- المستخرجة من العنصر قناة وعناصر الانتاج
- المستخرجة من العنصر البند وعناصر الانتاج