Langsung ke isi website
Langsung ke navigasi

Artikel PHP/MySQL

  • Home
    • » PHP/MySQL
      • » Menampilkan RSS di website dengan PHP, pelajari bagaimana memParsing RSS

Menampilkan RSS di website dengan PHP, pelajari bagaimana memParsing RSS

Apr 13 2008

Ditulis oleh Dhimas Ronggobramantyo
Kategori: PHP/MySQL
Dibaca 10712 kali

Langsung lihat komentar

RSS Logo Biru 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.

Simpan artikel ini ke: Digg it Del.icio.us Furl Reddit

Komentar [38]

1
Komentar Dikirim oleh gecko.web.id pada 25 April 2008 11:12:15 WIB

website yang bagus bro. rajin nulis ya...

BTW link di bagian RSS km masih kurang bener. tolong diperbaiki

semangatt!

2
Komentar Dikirim oleh yoyok pada 10 Mei 2008 05:32:56 WIB

makasih banyak dah bagi2 ilmu, ntar boleh nanya ya kalo gak bisa praktekinnya ....

3
Komentar Dikirim oleh karto pada 16 Mei 2008 09:46:38 WIB

makacih dah bagi ilmu

4
Komentar Dikirim oleh Adhit_016 pada 17 Mei 2008 04:44:01 WIB

website yang contentnya Dahsyat ...
maju terus..
thanks a lot
www.indeecom.co.nr

5
Komentar Dikirim oleh cycloholicer pada 22 Mei 2008 08:51:12 WIB

bagus bro, terimakasih tipsnya....


www.cycloholic.co.id

6
Komentar Dikirim oleh daniiswara.net pada 23 Mei 2008 11:10:26 WIB

wah jarang2 ada runut spt ini..jd agak ngerti dikit..maklum bukan bidang saya..makasi

ini mesin blog buatan sendiri ya..mantaf.. smile

7
Komentar Dikirim oleh Odenxs_85 pada 26 Agustus 2008 08:05:31 WIB

tulisin cara bikin kolom komentar d bwh ini donk,tuz cara ngkonek k data basenya y??he...thanx a lot

8
Komentar Dikirim oleh raiderhost pada 02 September 2008 01:08:06 WIB

mantap brooo

9
Komentar Dikirim oleh ma2nn pada 31 Oktober 2008 09:29:33 WIB

Wow artikelnya kren abiz...

O ya mas, mau nanya gimana cara pasang editor WYSISG kedalam web. Tolong di buat artikelnya serta doserta gambar, biar bisa jelas..

Makasih sebelumnya.

10
Komentar Dikirim oleh andi pada 19 November 2008 09:07:04 WIB

thanks sudah berbagi ilmu, semoga bermanfaat.

www.studiowebsite.net

11
Komentar Dikirim oleh rochman arif pada 20 November 2008 08:56:36 WIB

sangat membantu sekali, sudah saya coba di http://www.smpn5-mlg.sch.id/

terima kasih atas ilmunya

12
Komentar Dikirim oleh bilbil pada 24 November 2008 01:41:15 WIB

mas gimana cara buat kode xml menggunakan php agar data dari mysql bisa tampil dalam format rss. contoh yang dibahas diatas lebih banyak membahas classnya dan dan contohnya di load dari website ini.

saya pingin tau bagaimana buat file "newsrss.xml" yang mungkin akan nampilin data dari database.

TQ ya..



13
Komentar Dikirim oleh royan pada 29 November 2008 06:48:03 WIB

iya , memang benar bisa jalan, bisa minta tolong gimana cara menampilkan alamat rss lebih dari 1 alamat situs mohong penerangannya

14
Komentar Dikirim oleh adhi - matamulia.com pada 01 Desember 2008 04:31:48 WIB

nyari tutorial buat update rss pake php tanpa my sql ada gag??? tp untuk update gambar2

thanks

15
Komentar Dikirim oleh mukri pada 30 Januari 2009 01:53:04 WIB

trim bosss atas infonya
By Mukri thea

16
Komentar Dikirim oleh fauzi pada 10 Februari 2009 03:06:02 WIB

aduh lengkap banget sih......... jadi tau semuaa aq deh

17
Komentar Dikirim oleh ianhade.freetzi.com pada 13 Februari 2009 02:28:06 WIB

mas klo rss feed nya kaya detik atau kompas, apakah bs juga, soalnya url nya tdk memiliki ekstensi .xml

18
Komentar Dikirim oleh usmijuka pada 22 Februari 2009 11:27:17 WIB

mas mohon bantuan.. saya ingin menampilkan informasi cuaca di website tapi minimal hingga 3 hari kedepan.. selama ini yang saya dapat cuma saat itu saja.. bagaimana yah? terimakasiih

19
Komentar Dikirim oleh nuno pada 27 Februari 2009 11:04:13 WIB

apakah legal jika kita membuat rss dari media lain untuk di tampilkan hasilnya di situs kita?
mohon pencerahannya, trims

20
Komentar Dikirim oleh esti pada 02 Maret 2009 09:36:04 WIB

wah..ra donk aku..!!!!

21
Komentar Dikirim oleh kdhys.wordpress.com pada 02 Maret 2009 09:41:21 WIB

sample:


ini cara ngonekin php ke database.yang laennya cari aja digoogle.

22
Komentar Dikirim oleh kdhys.wordpress.com pada 02 Maret 2009 09:42:53 WIB

sample:
$host="localhost";
$user="root";
$code="";
$db="bukutamu";
mysql_connect($host,$user,$code);
mysql_select_db($db);



ini cara ngonekin php ke database.yang laennya cari aja digoogle.

23
Komentar Dikirim oleh sw pada 09 Maret 2009 06:03:01 WIB

thx...

24
Komentar Dikirim oleh poo pada 19 Maret 2009 11:10:45 WIB

bagaimana kalo situs kita pakai CMS joomla?
cara bikin rss nya gimana

25
Komentar Dikirim oleh NIC pada 28 Maret 2009 09:22:39 WIB

Wah ilmunya sangat bermanfaat bagi saya...
Terimaksih telah men share...

www.nicdesain.net

26
Komentar Dikirim oleh culun pada 17 Juni 2009 03:18:58 WIB

pusing deh aku... gak ngerti

27
Komentar Dikirim oleh bogelz pada 18 Juni 2009 06:15:25 WIB

BOS ada masalah nih ..
kok kl saya buat rss nya ada dua didalam web saya yang satu error ya dan webnya malah berantakan..
contoh :
sy akan ambil rss dr detik .com dan dudung.net
nanti yg tampil cuman satu yg satu error danwebsite jd berantakan..
kl cuman satu emang berhasil dg menggunakan metode itu..
wahhh ini gimana bos...?

28
Komentar Dikirim oleh Lawliet pada 18 Juni 2009 06:41:52 WIB

bagus mas, bisa gak ngajarin cara nampilin RSS weblaen di web kita, Plss dunk mas, penting nieh

29
Komentar Dikirim oleh Lawliet pada 18 Juni 2009 06:42:10 WIB

bagus mas, bisa gak ngajarin cara nampilin RSS weblaen di web kita, Plss dunk mas, penting nieh

30
Komentar Dikirim oleh Near pada 18 Juni 2009 08:12:38 WIB

Mas Tolongin lah, saya udah bisa ngebikin Rss kaya yang masnya ajarin, namun nampilinnya buat Web laen gimana caranya???


Pls????

31
Komentar Dikirim oleh bogelz pada 19 Juni 2009 01:10:10 WIB

Adminnya lg sibuk kali mas...

32
Komentar Dikirim oleh bogelz pada 19 Juni 2009 04:58:54 WIB

Kl mau berkunjung aja ke web sy http:www.bumenpulsa.com
hee...heee promosi kali.....

33
Komentar Dikirim oleh Mau Pintar pada 21 Juni 2009 11:16:31 WIB

Saya punya referensi nih buat yang mau lebih lanjut tentang PHP dan Ilmu Komputer lainnya, submit aja ke http://mr-amateur.co.cc.
disitu lengkap banget lho...

34
Komentar Dikirim oleh Junianto Bara pada 25 Oktober 2009 03:11:16 WIB

saat ini saya orang yang gak mengerti sama sekali dengan web.. apalagi istilah tentang html xhtml, rss, cros brosser, dan apalah segala sesuatu yang berhubungan dengan web,
dan saya sekarang sedang menggebu-gebu ingin bisa membuat web sendiri tanpa bantuan blogger atau worpress, .. tapi saya gak tau mau mulai dari mana,..
nah selanjtnya bisa gak bantu saya belajar, apa saja yang mesti saya persiapkan untuk bisa merancang sebuah situs web,, dari mana saya harus memulai dan software apa saja yang musti saya kuasai.. untuk saya bisa membuat satu web saja hasil kerja saya sendiri... tanks... buat bantunnya..

35
Komentar Dikirim oleh ugo pada 27 Oktober 2009 06:41:54 WIB

kl mau bikin web sendiri sebenarnya gampang sih.yg penting banyakin praktek dan kl ada yg bingung bisa tanyakan kepada orang yg tau.ada sedikit referensi anda berkunjung ke web sy saja di http://www.bumenpulsa.com insya Alloh sy akan bantu sesuai kemampuan saya..!

36
Komentar Dikirim oleh jagoanweb pada 17 Desember 2009 02:37:29 WIB

emm...
apakah rss itu adalah tampilan untuk hp?

37
Komentar Dikirim oleh agnila78 pada 15 Januari 2010 07:05:39 WIB

trimakasih, artikelnya sangat membantu..keep writing ..smile

sahabat, klo pengen web yang lengkap ada disini
http://www.w3schools.com/
cuma harus ngerti inggris ya

38
Komentar Dikirim oleh agnila78 pada 15 Januari 2010 07:05:56 WIB

trimakasih, artikelnya sangat membantu..keep writing ..smile

sahabat, klo pengen web yang lengkap ada disini
http://www.w3schools.com/
cuma harus ngerti inggris ya

Kembali keatas

Kirim Komentar:



Security Number