Ví dụ về nguồn cấp dữ liệu RSS của PHP - Ajax
RSS
Thực sự đơn giản Syndication được sử dụng để xuất bản thông tin cập nhật thường xuyên từ trang web như âm thanh, video, hình ảnh, v.v. Chúng tôi có thể tích hợp nguồn cấp RSS vào một trang web bằng cách sử dụng Ajax và php. Mã này trình bày cách hiển thị nguồn cấp RSS trong trang web của chúng tôi.
Index.html
Trang chỉ mục phải như sau:
<html>
<head>
<script>
function showRSS(str) {
if (str.length == 0) {
document.getElementById("output").innerHTML = "";
return;
}
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("output").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET","rss.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<p>Please Select an option to get RSS:</p>
<form>
<select onchange = "showRSS(this.value)">
<option value = "">Select an RSS-feed:</option>
<option value = "cnn">CNN</option>
<option value = "bbc">BBC News</option>
<option value = "pc">PC World</option>
</select>
</form>
<br>
<div id = "output">RSS-feeds</div>
</body>
</html>
rss.php
rss.php có chứa cú pháp về cách truy cập vào nguồn cấp dữ liệu rss và trả lại nguồn cấp dữ liệu rss cho các trang web.
<?php
$q = $_GET["q"];
if($q == "cnn") {
$xml = ("http://rss.cnn.com/rss/cnn_topstories.rss");
}elseif($q == "bbc") {
$xml = ("http://newsrss.bbc.co.uk/rss/newsonline_world_edition/americas/rss.xml");
}elseif($q = "pcw"){
$xml = ("http://www.pcworld.com/index.rss");
}
$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);
$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;
echo("<p><a href = '" . $channel_link . "'>" .
$channel_title . "</a>");
echo("<br>");
echo($channel_desc . "</p>");
$x = $xmlDoc->getElementsByTagName('item');
for ($i = 0; $i<=2; $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>");
}
?>
Nó sẽ tạo ra kết quả sau: