Membuat Web Feed dengan PHP

RSS Feed

Salah satu fitur penting dalam pengembangan sebuah website dan weblog adalah memiliki web feed (“umpan web” – wikipedia ), apalagi jika website tersebut memiliki isi yang sering diperbarui (up-date). Isi dalam hal ini adalah artikel atau berita baru yang diposting pada website, sehingga bisa dikatakan sebagai news feed (ringakasan berita). Memang sebagian besar web feed digunakan untuk meringkas berita sehingga menjadi lebih praktis dan melalui suatu aplikasi pembaca web feed (Really Simple Syndication Reader – RSS Reader) beberapa web feed dapat dikumpulkan menjadi satu. Melalui RSS Reader ini pembaca menjadi lebih mudah melihat daftar berita atau artikel terbaru dari web feed yang dilanggan, kemudian memilih artikel yang ingin dibacanya saja.

Beberapa keuntungan sebuah website memiliki web feed, diantaranya sebagai berikut:

  1. Pembaca lebih mudah membaca ringkasan isi terbaru, pembaca layaknya melihat daftar ringkasan isi terbaru dari sebuah website tanpa membuka websitenya secara langsung sehingga dapat menghemat aksesnya.
  2. Dapat diagregasikan dengan media sosial, web feed dapat dipasang pada media sosial seperti Facebook, Linkedin,  atau yang lainnya yang secara otomatis mem-posting ke wall.
  3. Sebagai media perluasan website, web feed dapat dipasangkan pada website lain sehingga beberapa website dapat saling bertukar web feed.

Apabila sebuah website dibangun menggunakan CMS – Content Management System, seperti Joomla, WordPress, atau yang lainnya fitur web feed ini biasanya sudah disediakan dan tinggal mengkonfigurasi dan diaktifkan saja. Nah bagaimana membuat web feed jika website yang dibuat sendiri atau tidak menggunakan CMS?, berikut ini contoh sederhana membuat web feed dengan PHP.

Sebagai contoh, sebuah website memuat beberapa artikel atau berita yang dikelompokan menjadi beberapa topik, seperti: keuangan, kesehatan, horoskop, dan seterusnya. Artikel atau berita ini disimpan pada database dalam satu tabel bernama tabel artikel. Karena artikel atau berita ini terdiri dari beberapa topik (atau kategori) maka digunakan field identitas untuk pengelompokannya (misalnya : artikel keuangan kode artikel “1”, artikel kesehatan kode artikel “2”, artikel horoskop kode artikel “3”, dan seterusnya). Field-field pada tabel artikel sebagai berikut: id_artikel (int 5), judul (varchar 200), isi (text), topik (int 2), tgl_posting (datetime).

Sebagai tambahan, web feed menggunakan standar penulisan kode XML – Extensible Markup Language.  Pada contoh kode program ini kode XML dibuat menggunakan kode PHP dan kode SQL untuk mengambil data yang ada dalam database.

Contoh format penulisan feed, sebagai berikut:

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>Judul Feed</title>
<link>http://www.tautan.com</link>
<description>Contoh penulisan feed</description>
<item>
<title>Feed artikel nomor satu</title>
<link>http://www.tautan.com/feed-satu</link>
<description>Contoh feed artikel nomor satu</description>
</item>
<item>
<title>Feed artikel nomor 2</title>
<link>http://www.tautan.com/feed-dua</link>
<description>Contoh feed artikel nomor dua</description>
</item>
</channel>
</rss>

Setelah mengetahui format feed diatas, maka dibawah ini adalah contoh feed yang dikembangkan dengan menambah properti yang lain seperti language, dll. Buatlah file feed.php yang berisi kode program seperti dibawah, lalu simpan feed.php pada website sehingga tautannya menjadi http://nama_domain/feed.php

<?php
$db_name="nama_db";
$connection=mysql_connect("localhost", "username_db", "password_db") or die("Could not connect.");
$db=mysql_select_db($db_name);
$query="SELECT id_artikel,judul,isi,topik,tgl_posting FROM artikel WHERE topik='1' ORDER BY tgl DESC LIMIT 0 , 10";
$result=mysql_query($query, $connection) or die("Could not complete database query");

echo "<?xml version=\"1.0\" encoding=\"UTF-8" ?>";
echo "<rss version=\"2.0\">";
echo "<channel>";
echo "<title>RSS Feed</title>";
echo "<link>http://nama_domain/</link>";
echo "<description>RSS Feed Keuangan</description>";
echo "<language>id-id</language>";
echo "<copyright>Nama Domain</copyright>";
echo "<lastBuildDate>".date("D, d M Y H:i:s")." +0700 </lastBuildDate>";
echo "<generator>feed_domain (webmaster@nama_domain)</generator>";

while ($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
 $idartikel = $row['id_artikel'];
 $tanggal = date("D, d M Y H:i:s",strtotime($row['tgl_posting']));
 $judul = $row['judul'];
 $keterangan = htmlentities(strip_tags($row['isi']),ENT_QUOTES);

 echo "<item>";
 echo "<title>$judul</title>";
 echo "<description>$keterangan</description>";
 echo "<link>http://nama_domain/index.php?pilih=1%26id=$idartikel</link>";
 echo "<pubDate>$tanggal +0700 </pubDate>";
 echo "<guid isPermaLink=\"false\">http://nama_domain/index.php?pilih=1%26id=$idartikel</guid>";
 echo "</item>";
}

echo "</channel>";
echo "</rss>";
?>

Beberapa kode program yang perlu diperhatikan adalah sebagai berikut:

  1. Penulisan kode “xml encoding” digunakan UTF-8, hal ini tergantung dari konfigurasi server (kode lainnya: ISO-8859-1)
  2. Query “LIMIT 0 , 10”, artikel yang ditampilkan dibatasi hanya 10 artikel
  3. Penulisan kode “htmlentities(strip_tags($row[‘isi’]),ENT_QUOTES)”, menghilangkan tag html yang ada didalam artikel atau berita
  4. Penulisan kode “link” dan “guid”, hindari penggunaan kode “&” (diganti dengan kode “%26”) untuk memisahkan variabel yang dipakai. Pada contoh diatas, “pilih=1” adalah memilih topik artikel atau berita “1” (yang berarti topik keuangan) dan “id=$idartikel” adalah untuk memilih id artikel atau berita.
  5. Penulisan tanggal menambahkan “+0700” adalah format standar UTC atau GMT, karena berada di Indoensia maka digunakan kode Asia/Jakarta

Apabila file feed.php sudah diletakkan pada website, lakukan pengecekan kode menggunakan feed validator yang disediakan oleh W3C di alamat http://feedvalidator.org. Feed validator ini akan mengecek output web feed dan akan menampilkan pesan kesalahan bila tidak sesuai dengan standar, jika sukses feed validator akan memunculkan ikon Valid RSS.

Artikel penting lainnya:
http://www.w3schools.com/rss/default.asp
http://en.wikipedia.org/wiki/Web_feed
http://en.wikipedia.org/wiki/RSS 

Iklan

13 thoughts on “Membuat Web Feed dengan PHP

  1. meski saya tidak terlalu mengerti dengan topik yang dibicarakan , tapi secara keseluruhan topiknya menarik, makasih ya sdh mau berbagi

  2. mas itu kan artikelnya ngambil dari database ya nah semisalnya kita mau ambil artikel dari website org lain atau website porta berita gmn ya ?

  3. coding php yang kita buat gk harus di hosting kan mas untuk mendapat hasil RSS dari situs yang online,, hanya di localhost bisa gak mas (offline)?

    • hmm.. bisa juga codingnya di taruh di localhost, tapi kalo mau ambil rss dari situs online komputernya dihubungkan ke internet ya

  4. gan kalo tarikan rss disimpan ke localhost kita, terus isian yg disimpan di localhost kita buat perubahan, untuk tampilan web yg kita post rss dari localhostnya kita bisa berubah ??

    terus untuk rss yg disimpan di localhost, dan selanjutnya ada perubahan atau update dari rss asalnya, di webnya kita ikutan berubah nggak ?

    • pada intinya rss adalah menampilkan secara ringkas artikel dari sumbernya, kemudian rss ini kita pasang di website kita, sehingga jika ada update/baru di webkita juga ikut berubah. namun di website kita tidak menyimpan artikel/data yang kita buat rss tadi.
      nah jika list rss di website kita di klik oleh pembaca otomatis akan membuka tab/page/link alamat aslinya

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s