Parsing RSS Dan Menampilkan RSS Dengan PHP ~ RSS tentunya penting pada blog, website dan lain sebagainya. Selain untuk sindikasi ringkasan artikel Anda, RSS juga berperan sebagai kunci utama dalam pencarian search engine yang mengarah ke website atau blog Anda. Apalagi website atau blog Anda merupakan situs berita, pasti membutuhkan RSS ini untuk menampilkan sepenggal isi dari berita yang Anda miliki. Saya tidak begitu paham tentang RSS tapi saya ingin berbagi pengetahuan saya tentang RSS dengan tujuan sebagai referensi saya untuk dikemudian hari dan juga untuk menambah pengalaman saya dalam dunia internet.
Anda pastinya sudah tahu bukan apa itu RSS yang merupakan sebuah singkatan dari
Really Simple Syndication. Sedikit penjelasan tentang RSS, "RSS adalah sebuah file berformat XML untuk sindikasi yang telah digunakan (diantaranya dan kebanyakan) situs web berita dan weblog. Singkatan ini biasanya mengarah ke beberapa kata yaitu:
- Rich Site Summary (RSS 0.91)
- RDF Site Summary (RSS 0.9 and 1.0)
- Really Simple Syndication (RSS 2.0)
Teknologi yang dibangun dengan RSS mengijinkan kita untuk berlangganan kepada situs web yang menyediakan umpan web (feed) RSS, biasanya situs web yang isinya selalu diganti secara reguler" (
wikipedia).
Sampai saat ini RSS merupakan sindikasi situs yang masih sangat populer diikuti beberapa variannya seperti Atom dan Podcasts. Saya tidak bisa membahas RSS ini panjang lebar karena pembahasannya sangat panjang sekali. Nah sekarang mari kita belajar membuat RSS dan memparsingnya dengan PHP sesuai keinginan Anda. Karena RSS itu menggunakan file dengan extensi XML maka Anda perlu mengetahui strukturnya. sebagai contoh pada kode dibawah ini:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Belajar Membuat RSS Web</title>
<link>http://www.afrioni.web.id/</link>
<description>Situs yang berisi tentang
artikel dan tutorial untuk membuat RSS website</description>
<language>id</language>
<lastBuildDate>Sun, 01 Jan 2012
12:39:46 GMT</lastBuildDate>
<ttl>10</ttl>
<image>
<title>afrioni.web.id</title>
<width>142</width>
<height>18</height>
<link>http://www.afrioni.web.id</link>
<url>http://1.bp.blogspot.com/-5g5bG5PB2-8/Tv_0Jyh8K2I/AAAAAAAAAP4/bakFk3hLEf0/s1600/rssbutton.png</url>
</image>
<item>
<title>Menampilkan FEED/RSS Dari Website Lain Menggunakan PHP</title>
<link>http://www.afrioni.web.id/2011/12/menampilkan-feedrss-dari-website-lain.html</link>
<pubDate>Sun, 25 Des 2011 02:14:56
GMT</pubDate>
<description>Menampilkan FEED/RSS Dari Website Lain Menggunakan PHP ~ Pada halaman statis terkadang butuh juga FEED/RSS postingan dari halaman lain yang menuju pada halaman statis tersebut. Mungkin bisa dijadikan Recent Post untuk postingan terbaru pada halaman statis tersebut.</description>
</item>
<item>
<title>Cara Membuat Mie Tiaw Goreng</title>
<link>http://www.afrioni.web.id/2011/09/cara-membuat-mie-tiaw-goreng.html</link>
<pubDate>Wed, 21 Sep 2011 23:59:43 GMT</pubDate>
<description>Cara Membuat Mie Tiaw Goreng - Posting kali ini berawal dari janji saya kepada teman saya yang meminta resep cara membuat mie tiaw. Semoga melalui posting ini janji teman saya terpenuhi. Ada banyak dan beraneka ragam cara membuat mie tiaw goreng yang anda bisa mendapatkannya di internet. Semoga resep ini memenuhi selera Anda dan menikmatinya.. :D</description>
</item>
</channel>
</rss>
Lalu simpanlah RSS tersebut dengan extensi .xml seperti contoh diatas. Pada struktur RSS diatas saya membuat RSS yang menampilkan 2 berita. Berita tersebut berada pada beberapa tag yaitu
<item> dan pada tag tersebut ada beberapa tag lainnya yaitu
<title>,
<link>,
<pubDate> dan
<description>. Nah nanti kita akan memparsing
<item> dan menampilkannya diwebsite kita agar enak dilihat.
Mungkin anda bertanya-tanya, parsing tu seperti apa? oke, jika anda punya Internet Explorer atau Mozilla Firefox. Sebagai contoh silahkan buka RSS situs ini yaitu:
http://afrioniblog.wordpress.com/feed/ dan Anda akan melihat disana hasil parse RSS dari situs http://afrioniblog.wordpress.com/feed/ bukan isi dari RSS.
Baiklah sekarang mari kita parsing dari struktur RSS diatas dengan menggunakan PHP.
Cara paling gampang untuk parsing RSS adalah dengan menggunakan
Magpie RSS, sebuah class PHP yang dapat anda download dengan gratis. Dan ada lagi tutorial dari Kevin Yank dari
Sitepoint yang bisa memanipulasi tampilan RSS. Disini kita akan menggunakan kode dari tutorial tersebut tetapi kita manipulasi agar kodenya lebih sederhana serta kita bisa menampilkan berapa jumlah RSS yang ingin kita tampilkan dan agar kita bisa menampilkan gambar dalam RSS tersebut.
Baiklah mari kita coba untuk membuat parsing RSSnya dan nanti silahkan Anda manipulasi sendiri. Sekarang buatlah file rss.php dan isilah dengan kode berikut:
<?php
function startElement($parser, $name, $attrs) {
global $insideitem, $tag, $title, $description, $link, $pubDate;
if ($insideitem) {
$tag = $name;
} elseif ($name == "ITEM") {
$insideitem = true;
}
}
function endElement($parser, $name) {
global $insideitem, $tag, $title, $description, $link, $pubDate, $i;
if (!$i) {
$i=1;
}
if (($name == "ITEM") && ($i<=5)) {
$i++;
printf("<h3><a href='%s' class=main target=_blank>%s</a></h3>%s<p>%s</p>",
trim($link),trim($title), substr($pubDate,0,16), $description);
$title = "";
$description = "";
$link = "";
$pubDate="";
$insideitem = false;
}
}
function characterData($parser, $data) {
global $insideitem, $tag, $title, $description, $link, $pubDate;
if ($insideitem) {
switch ($tag) {
case "TITLE":
$title .= $data;
break;
case "DESCRIPTION":
$description .= $data;
break;
case "LINK":
$link .= $data;
break;
case "PUBDATE":
$pubDate .= $data;
break;
}
}
}
$insideitem = false;
$tag = "";
$title = "";
$description = "";
$link = "";
$pubDate ="";
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
$fp = fopen("http://URL WEB RSS ANDA","r"); // masukkan URL RSS Anda misalnya http://afrioniblog.wordpress.com/feed/
while ($datarss = fread($fp, 4096))
xml_parse($xml_parser, $datarss, feof($fp))
or die(sprintf("XML error: %s pada baris %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);
?>
Dan cobalah Anda jalankan. Jika kita perhatikan scriptnya, disana ada 3 fungsi yaitu
startElement,
endElement dan
characterData. Ketiga fungsi tersebut merupakan fungsi untuk memparsing dan membagi-bagi tag XML didalm RSS.
Nah sekarang kita akan melihat penjelasan mengenai fungsi yang telah kita ubah yaitu
endElement. Jika anda perhatikan pada fungsi
endElement saya menambahkan variabel
$i. Variabel ini gunanya nanti untuk jumlah isi berita yang ingin ditampilkan dalam RSS. Dalam contoh diatas saya hanya ingin menampilkan 5 saja. Oke jika kita lihat script diatas, kita telah memasang script:
if (!$i) {
$i=1;
}
Nah disitu kita hanya melakukan pengecekan sederhana, jika belum ada variabel
$i maka akan saya buat variabel
$i dengan isinya 1. Kemudian script berikutnya adalah seperti ini:
if (($name == "ITEM") && ($i<=5)) {
$i++;
printf("<h3><a href='%s' class=main target=_blank>%s</a></h3>%s<p>%s</p>",
trim($link),trim($title), substr($pubDate,0,16), $description);
$title = "";
$description = "";
$link = "";
$pubDate="";
$insideitem = false;
}
Kuncinya adalah pada pengecekan yang ini, dimana kita mengecek
($i<=5). Jika anda ingin menampilkan 10 isi RSS tersebut anda tinggal mengubahnya saja menjadi 10. Nah untuk menampilkan RSSnya kita menggunakan fungsi
printf atau boleh menggunakan fungsi lain untuk menampilkan RSSnya
printf("<h3><a href='%s' class=main target=_blank>%s</a></h3>%s<p>%s</p>",
trim($link),trim($title), substr($pubDate,0,16), $description);
Fungsi
printf ini berfungsi untuk menampilkan pada layar sebuah teks dan variabelnya. Karena semua variabel yang ingin ditampikan bentuknya teks / string maka kita menggunakan
%s. Dimana pada
%s yang pertama isinya adalah
trim($link),
%s yang kedua isinya adalah
trim($title),
%s yang ketiga isinya adalah
substr($pubDate,0,16) dan seterusnya.
Nah, pada bagian
printf inilah anda memasang kode HTML untuk mempercantik tampilan RSS anda.
Silahkan mencoba dan apabila terjadi beberapa kesalahan silahkan berbagi disini karena dengan berbagi maka ilmu yang kita dapat akan bertambah.
Happy coding... !! :D
Referensi: http://www.dhimasronggobramantyo.com -- Menampilkan RSS di website dengan PHP, pelajari bagaimana memParsing RSS