rss-aggregator

Jika anda pemakai Blogger atau WordPress  maka anda akan merasakan nyamannya meletakan RSS Feed ke widget website. Tinggal Drag widget, masukan URL kemudian lihat halamannya di website. Bagi yang belum paham, RSS Feed adalah teknik menampilkan Artikel dari website lain di Website kita, biasanya di letakan di Widget/Sidebar.

Sekarang bagaimana seandainya anda disuruh membuat website dengan PHP lalu client meminta agar di sidebarnya bisa menampilkan RSS feed terbaru dari Website lain? Cara termudah adalah  memanfaatkan kelas RSS opensource yang sudah dibuat oleh pihak lain, salah satunya adalah Anis uddin Ahmad (ajaxray.com).

Kelas ini diberi nama PHP Universal Feed parser karena memang kelas ini mampu memparsing format Atom,RSS v1 dan RSS v2. Agar tidak panjang lebar anda bisa mempelajari nanti kelasnya di file zip yang saya sertakan di download pada bagian bawah artikel.

Pada tutorial ini saya fokus pada teknik memparser dengan memanfaatkan kelas FeedParser dengan empat variasi tampilan. Tampilan demonya bisa anda lihat  disini.

Cara pemakaian kelas

include('FeedParser.php'); 
$Parser = new FeedParser(); 
$Parser->parse('http://kisahmuslim.com/feed/'); 
$channels = $Parser->getChannels(); 
$items = $Parser->getItems(); 

Kode diatas harus diletakandi awal file. Pada intinya kode tersebut menginstant kelas FeedParser lalu memparse alamat URL kisahmuslim.com/feed/. Catatan penting disini, masing masing Website mempunyai alamat RSS yang berbeda, namun untuk website yang dibangun dengan WordPress rata rata alamat URL RSS adalah http://namawebsite.com/feed/. Tampilan dari RSS feed bisa anda atur agar lebih cantik dengan CSS. Tampilan di halaman demo adalah tampilan RSS dengan CSS sederhana, anda bisa menyesuikan CSSnya di style.css yang disertakan di download.

menampilkan Hanya Judul artikel

Dalam tampilan  ini, RSS hanya menampilkan judul dalam list.Catatan penting disini,setiap item dalam XML yang akan kita tampilkan harus menggunakan huruf besar, lihat bagian LINK dan TITLE. Berikut ini kodenya


<ol>
    <?php foreach($items as $item): ?> 
<li>
<a class="feed-title" href="<?php echo $item['LINK']; ?>">
<?php echo $item['TITLE']; ?></a> 
</li>
    <?php endforeach;?> 
</ol>

Menampilkan judul, penulis, kategori dan tanggal

<?php foreach($items as $item): ?> 

<h3><a class="feed-title" href="<?php echo $item['LINK']; ?>">
<?php echo $item['TITLE']; ?></a></h3>

<strong><?php echo "Kategori: ".$item['CATEGORY']?></strong>,
<i><?php echo "Ditulis oleh: ".$item['DC:CREATOR']?></i>,

publish:<?php echo gmdate("d-M-Y H:i:s",$item['PUBDATE']);?>
    <?php endforeach;?> 

Perhatikan pada fungsi gmdate, fungsi ini dipakai karena sebagian website menyimpan data tanggal dalam format unixtime maka perlu kita konversi dulu kedalam format tanggal yang mudah dibaca pengunjung web.

Teknik menampilkan judul dan deskripsi

Teknik ini menampilkan Judul dan potongan artikel. Biasanya paragraf pertama dari artikel tersebut.

<?php foreach($items as $item): ?> 

<h3><a class="feed-title" href="<?php echo $item['LINK']; ?>">
<?php echo $item['TITLE']; ?></a></h3>

<?php echo ($item['DESCRIPTION']); ?>
    <?php endforeach;?> 

Teknik ke empat (Custom)

Teknik ini sebenarnya sama dengan teknik 3, namun ada sedikit perbedaan,secara default, kelas FeedParser akan menampilkan seluruh Item yang diambil dengan for ..each. Secara default biasanya 10 item terakhir, namun kita bisa atur agar kita hanya mengambil 5 data terakhir saja dengan memanfaatkan fungsi array_slice(). Selain itu, kadang DESCRIPTION juga terlalu panjang, kita juga bisa mengaturnya dengan memanfaatkan fungsi substr(). Untuk lebih jelasnya lihat contoh dibawah ini.

 <?php foreach(array_slice($items, 0, 5) as $item): ?> 

<h3><a class="feed-title" href="<?php echo $item['LINK']; ?>">
<?php echo $item['TITLE']; ?></a></h3>

<?php echo substr($item['DESCRIPTION'],0,60)."..."; ?>

    <?php endforeach;?> 

Demo dan Download

Coba demonya disini dan download source codenya disini.

By Candra Adi Putra

Candra Adi Putra S.Kom adalah Alumni STMIK AKAKOM Yogyakarta. hubungi saya di candraadiputra (at) gmail (dot) com

10 thoughts on “Cara memparsing RSS Feed di PHP”
  1. Thanks brother. ini yang saya cari dan sekarang sudah berhasil. untuk menambahkan widget berita menggunakan rss dari wordpress……!! thank you so much……

Leave a Reply

Your email address will not be published. Required fields are marked *