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

Sumber : http://alifaiq.wordpress.com/2012/06/02/membuat-web-feed-dengan-php/


Related Search