RSS feed ke HTML
Dah lebih tiga minggu takder entri kat blog ni. Tak tau apa nak tulis disamping cuba untuk redesign balik site ebook aku. Ok. Disebabkan takder apa nak tulis, ada baiknya aku tunjukkan kat anda semua bagaimana cara nak ambik RSS feed dalam format xml dan convert ke html. Ok jugak ni sebab kalian boleh curi mana mana feed dari blog sapa sapa pastu tampal kat website kalian. Hahah.
Ok, script ni dalam php. Mula mula buat function ni.
function getPage ($url) {
if (function_exists('curl_init')) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
return curl_exec($ch);
} else {
return file_get_contents($url);
}
}
So kita ada $url sebagai variable. url ni kena dalam format xml, atau kalian copy RSS Feed url kat mana mana. Contoh dia, kalau blog ni, RSS Feed dia http://feeds.feedburner.com/mazudi. Sekarang gantikan url ni kat code dibawah.
$PageUrl= getPage("http://feeds.feedburner.com/mazudi");
$xml =new SimpleXMLElement($PageUrl);
Ok. Boleh ikut tak ni?
Seterusnya, kita nak paparkan item item yang kita nak curi tu kat dalam website kita. Sebelum tu, kita kena tengok kat source code xml file tu. Kalau pakai Firefox, View –> Page Source. (View RSS Feed ya, bukan view html page). Kalian akan nampak lebih kurang macam kat bawah
<channel>
<title>mazudi.com</title>
<link>http://www.mazudi.com</link>
<description>Live The Life</description>
<pubDate>Fri, 16 May 2008 02:24:47 +0000</pubDate>
<generator>http://wordpress.org/?v=2.5.1</generator>
<language>en</language>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/mazudi" type="application/rss+xml" />
<item>
<title>Projek eBook Dan Adsense</title>
<link>http://feeds.feedburner.com/~r/mazudi/
~3/280192075/</link>
<comments>http://www.mazudi.com/2008/04/30/
.....</comments>
<pubDate>Tue, 29 Apr 2008 16:38:17 +0000</pubDate>
<guid isPermaLink="false">http://www.mazudi.com/?p=543
</guid>
<description><![CDATA[Selepas lebih 3 bulan memulakan project ebook yang bertujuan untuk compile url ebook ebook yang boleh didownload secara terus tanpa melalui Rapidshare atau seumpamanya, serta tujuan kedua untuk meletakkan iklan Adsense kat situ, akhirnya bulan ini saya dapat juga hasil dari Adsense ni. Tak tahu macam mana orang lain boleh dapat click yang banyak setiap [...]]]></description>….
OK. Sekarang ini code dia untuk paparkan Tajuk Entri dengan Link ke entry tersebut bersama dengan short description. Jadi item yang kita kena ambik ialah :
1. channel->item->link : Untuk link ke Tajuk Entri.
2. channel->item->title : Untuk tajuk entri
3. channel->item[$i]->description : Untuk short description.
Dalam format php, kita kena buat macam ni :
echo "<a href=\"".$xml->channel->item[0]->link.” target=\”_blank\”\”>”.$xml->channel->item[0]->title.”</a><br />”;
echo $xml->channel->item[0]->description.”<br />”;
Ini akan memaparkan entri terkini sebab kita ambik item[0], iaitu item yang teratas sekali. Kalau nak ambik beberapa tajuk entri, kita kena pakai “for” seperti di bawah. Contohnya kalau nak ambik 10 entri.
for($i=0; $i<=9; $i++)
{
echo "<a href=\"".$xml->channel->item[$i]->link.” target=\”_blank\”\”>”.$xml->channel->item[$i]->title.”</a><br />”;
echo $xml->channel->item[$i]->description.”<br />”;
}
Hasilnya lebih kurang macam ni:
Projek eBook Dan Adsense
Selepas lebih 3 bulan memulakan project ebook yang bertujuan untuk compile url ebook ebook yang boleh didownload secara terus tanpa melalui Rapidshare atau seumpamanya, serta tujuan kedua untuk meletakkan iklan Adsense kat situ, akhirnya bulan ini saya dapat juga hasil dari Adsense ni. Tak tahu macam mana orang lain boleh dapat click yang banyak setiap [...]
Ini adalah Code Sepenuhnya.
<?php
function getPage ($url) {
if (function_exists('curl_init')) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
return curl_exec($ch);
} else {
return file_get_contents($url);
}
}
$PageUrl= getPage(”http://feeds.feedburner.com/mazudi”);
$xml =new SimpleXMLElement($PageUrl);
for($i=0; $i<=9; $i++)
{
echo “<a href=\”".$xml->channel->item[$i]->link.” target=\”_blank\”\”>”.$xml->channel->item[$i]->title.”</a><br />”;
echo $xml->channel->item[$i]->description.”<br />”;
}
?>
Selamat mencuba. Happy coding.
Artikel Yang Berkaitan
» “Dynamic Feed” Dari Google Feed API
» Google AJAX Feed API Untuk Blogroll
» Perkongsian Link Untuk Blogroll
» My New Website
» Kursus Pembangunan Laman Web
» SEO Cheat Sheet
» Gerhana Matahari 1hb Ogos 2008
» Third Day


















wah bro. php gurus, cayalah.
21 May 2008 : 1:15 pm
aku enggak paham sgt ni. ni nak ciplak feed org pastu otomatik post kt blog kite ke?
21 May 2008 : 2:46 pm
@megat
Huhu.. gurus lagi tu. Mana ada. Simple simple boleh laa.
@syam
Dengan script ni kita boleh paparkan apa apa xml ke format yg biasa. Contoh nya, bila tengok kat Ranking section kat bawah blog aku ni, kau nampak ada nombor nombor tu kan. Sebenarnya nombor nombor tu (Pagerank, AlexaRank etc tu) dia publish dalam format XML. Jadi dengan gunakan script ni kita boleh ambil nombor nombor dalam format xml tu kalau kita tau xml url dia dan paparkan kat site kita. Lagipun script ni tak la berat sangat bila loading, cepat jugak.
21 May 2008 : 4:33 pm
ku da lama dengar tp tak penah try lagi hehe. mgkn sebab sebelom neh ku tak jumpa tutorial yang camnih ;p.
22 May 2008 : 11:56 am
aiyoyoh..kene pelan2 tengok nih. aku nih bukan programming-savy
22 May 2008 : 1:14 pm
Terima kasih maklumat ini
25 May 2008 : 1:15 am
Good post.
29 October 2008 : 6:00 am