Menampilkan RSS di website dengan PHP, pelajari bagaimana memParsing RSS
Anda tentu sudah mengetahui tentang RSS. Ya, RSS merupakan sebuah file
yang dibuat dengan struktur XML yang fungsinya untuk menampilkan
sepenggal informasi dari suatu website. Karena RSS merupakan file XML
maka file tersebut bisa diakses oleh website lainnya, RSS reader ataupun
software desktop. Kali ini kita akan mencoba menampilkan RSS dari suatu
website di dalam website kita.
RSS menggunakan file XML, karena itu semua file RSS didunia harus sama.
Maka struktur file RSS telah distandarkan agar apabila anda membuat
aplikasi untuk membaca file RSS, maka aplikasi anda dapat membaca file
RSS dari website manapun diseluruh dunia.
Sejarah RSS
Saya tidak akan bicara panjang lebar mengenai sejarah RSS, yang past RSS
pertama kali diperkenalkan oleh Netscape pada tahun 1999 yang digunakan
pada situs My.Netscape.com. Pada waktu itu RSS yang keluar pertama kali
adalah RSS versi 0.9 dan kepanjangan RSS waktu itu adalah RDF Site
Summary.
Tahukah anda, bahwa logo RSS yang berwarna orange dan ada gambar sinyal
radio nya itu pertama kali digunakan oleh browser Mozilla Firefox pada
tahun 2005. Dan untuk pertama kalinya Internet Explorer bekerjasam
dengan Mozilla yaitu IE tertarik menggunakan icon RSS pada Firefox dan
menggunakannya di browser IE7. Setelah itu Opera pun mengikutinya dan
sekarang icon tersebut telah menjadi simbol RSS.
Sekarang RSS telah ada dalam versi RSS 2.0 dan kepanjangannya sudah
ganti menjadi Really Simple Syndication. Bahkan variannya juga sudah
mulai banyak seperti Atom dan Podcasts. Tetapi RSS masih tetap paling
populer karena kemudahannya sampai saat ini. Oke sekarang jika anda
menemukan website yang menyediakan RSS ini berarti anda dapat
menampilkan sepenggalan berita pada website tersebut kedalam website
anda. Dan karena RSS bentuknya XML anda tentu harus mengubah isi RSS
tersebut / Parsing kebentuk yang kita inginkan, atau minimal enak
dibaca. Karena RSS berbentuk XML maka kita perlu mengetahui dulu
strukturnya. Perhatikan contoh struktur dari RSS website
dhimasronggobramantyo.com:
<?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>Belajar Web</title> <link>http://www.dhimasronggobramantyo.com</link> <description>Situs yang berisi artikel dan tutorial untuk membuat dan mengembangkan website</description> <language>en-us</language> <lastBuildDate>Sat, 03 Nov 2007 15:16:46 GMT</lastBuildDate> <ttl>10</ttl> <image> <title>dhimasronggobramantyo.com</title> <width>142</width> <height>18</height> <link>http://www.dhimasronggobramantyo.com</link> <url>http://www.dhimasronggobramantyo.com/images/rssbutton.gif</url> </image> <item> <title>Aturan membuat Forms</title> <link>http://www.dhimasronggobramantyo.com/Aturan_membuat_Forms_dan_bagaimana_membuat_Forms_yang_sesuai_prinsip_Web_Standards</link> <pubDate>Sat, 03 Nov 2007 03:14:56 GMT</pubDate> <description>Forms merupakan bagian terpenting dalam website, hampir semua website yang ada saat ini memiliki forms, entah itu hanya form sederhana untuk melakukan pencarian ataupu forms kompleks untuk pendaftaran anggota. Tetapi kadang kita meremehkan form, disini saya akan mengajarkan cara membuat form yang baik dan benar.</description> </item> <item> <title>Statistik Pengunjung pada bulan Oktober 2007</title> <link>http://www.dhimasronggobramantyo.com/Statistik_Pengunjung_pada_bulan_Oktober_2007</link> <pubDate>Fri, 02 Nov 2007 11:16:43 GMT</pubDate> <description>Saya berencana untuk memberikan informasi jumlah pengunjung website ini setiap bulannya. Dan inilah statistik kunjungan website untuk bulan Oktober 2007. Saya menggunakan tools Google Analytics, dan karena website ini baru online tanggal 10 Oktober 2007, maka pengunjung bulan ini masih sedikit.</description> </item> </channel> </rss>
Jika anda perhatikan struktur RSS diatas, maka anda dapat melihat bahwa
RSS tersebut menampilkan 2 berita. Berita/informasi berada didalam
<item>
, dan didalamnya ada <title>
, <link>
, <pubDate>
dan <description>
. Nah nanti kita akan memparsing <item>
dan menampilkannya diwebsite kita agar enak dilihat. Apa anda bisa membaca jika tampilannya seperti contoh diatas?
Mungkin anda bertanya-tanya, parsing tu seperti apa? oke, jika anda
punya Internet Explorer 7 atau Mozilla Firefox. Silahkan buka RSS situs
ini yaitu: http://www.dhimasronggobramantyo.com/newsrss.xml.
Maka yang anda lihat bukan isi RSS nya seperti contoh diatas, tetapi
sudah ditampilkan dengan baik. Ini karena IE7 dan Mozilla dapat
memparsing RSS. Nah kita akan membuatnya dengan PHP.
Parsing RSS
Cara paling gampang untuk parsing RSS adalah dengan menggunakan Magpie RSS, sebuah class PHP yang dapat anda download dengan gratis. Tetapi saya senang dengan tutorial dari Kevin Yank dari Sitepoint.
Karena kita bisa memanipulasi tampilan RSS kita. 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.
Karena itu silahkan anda kunjungi tutorial aslinya untuk mengetahui
fungsi-fungsi yang digunakan secara lebih detail. Karena saya hanya akan
menerangkan bagian-bagian yang saya ubah dan tambahkan. Oke langsung
saja kita coba, kodenya sedikit hanya satu file saja, nanti bisa anda
manipulasi sendiri. Buatlah file rss.php dan isilah dengan kode berikut
ini:
<? 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://www.dhimasronggobramantyo.com/newsrss.xml","r"); 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); ?>
Silahkan anda coba jalankan, atau anda dapat melihatnya disini.
Perlu diingat anda harus memiliki koneksi internet untuk mencobanya,
karena kita mengambil RSS dari situs ini secara online. Oke jika kita
perhatikan kodenya, kita memiliki 3 fungsi:
startElement
, endElement
dan characterData
. Ketiga fungsi tersebut merupakan fungsi untuk memparsing dan membagi-bagi tag XML didalm RSS.
Nah saya akan menjelaskan mengenai fungsi yang telah saya 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 anda lihat diatas saya memasang kode:
if (!$i) { $i=1; }
Nah disitu saya hanya melakukan pengecekan sederhana, jika belum ada variabel
$i
maka akan saya buat variabel $i
dengan isinya 1. Kemudian kode 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
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. Mudah kan, selamat mencoba,
mungkin penjelasan syaa kali ini agak kurang lengkap, karena saya
menulis artikel ini terburu-buru agar diwebsite ini ada sesuatu yang
baru. Sudah 1 bulan ini saya sibuk dan baru bisa menulis artikel baru
sekarang, jadi jangan kaget kalau artikel diwebsite ini mulai jarang,
tapi tenang saja saya sudah menyiapkan beberapa artikel menarik.
Suka dengan artikel ini? Sebarkan keseluruh dunia melalui Jejaring Sosial berikut ini:
0 komentar:
Posting Komentar
lakukan yang terbaik