Studi Kasus : Mendapatkan Feed situs lain dengan RSS Reader SimplePie, menampilkannya, dan menyimpannya ke dalam database.
Kebutuhan : SimplePie library, download here. Webserver Packages, already installed.

RSS (Really Simple Syndication) adalah format berbasis XML yang digunakan untuk sharing dan delivering konten dari web yang pada umumnya diupdate secara regular. Sedangkan istilah ‘feed‘ mengacu pada output dari RSS yang dapat dibaca dengan RSS Feed Reader (pembaca rss feed). SimplePie merupakan RSS Feed Reader/Parser yang cukup terkenal (dan paling saya sukai tentunya), cara kerja dari RSS Feed Parser semacam ini adalah dengan membaca format XML yang terdapat dalam RSS Feed yang kita tentukan sendiri.

Ok, langsung praktik saja.

Step 1 : Persiapkan Database

  1. Buat database dengan nama db_tutorial
  2. Siapkan tabel dengan nama tb_rss, dengan struktur tabel seperti gambar dibawah ini.
    Table Structure
  3. Done with the database!

Step 2 : Persiapkan Folder Kerja

  1. Buat folder baru di document root anda dengan nama folder rss
  2. Buat sebuah folder didalam folder rss dengan nama cache (…/rss/cache)
  3. Copy file SimplePie.inc (hasil download – yang berada dalam file ZIP simplePie) ke dalam folder rss.

Step 3 : Membuat Koneksi ke database

  1. Buat script untuk melakukan koneksi ke database, yaitu dengan ketikkan script dibawah ini,
    <?php
    //file name : connect.php
    //author : littleflow3r
    $host = "localhost";
    $user = "root"; //sesuaikan dengan setting mysql
    $pass = ""; //
    sesuaikan dengan setting mysql
    $dbName = "db_tutorial";
    mysql_connect($host, $user, $pass);
    mysql_select_db($dbName)
    or die ("Connect Failed !! : ".mysql_error());
    ?>
  2. Simpan dalam folder rss dengan nama connect.php

Step 4 : Inisialisasi SimplePie

  1. Ketikkan script dibawah ini,
    <?php
    //file name : initRSS.php
    //author : littleflow3r
    require_once 'simplepie.inc';
    //initialize simplePie
    $feed = new SimplePie('http://localhost/websmsmasking/feed/rss');
    $feed->set_cache_location('../rss/cache/');
    $feed->set_feed_url('http://localhost/websmsmasking/feed/rss');
    $feed->init();
    $feed->handle_content_type();
    ?>
  2. Simpan dalam folder rss dengan nama initRSS.php
  3. Keterangan : Cara kerja dari SimplePie RSS Parser adalah dengan membaca format XML yang terdapat dalam RSS Feed. Code diatas digunakan untuk menginisialisasi SimplePie, dengan memasukkan alamat dari rss kita [baris 06 dan baris 08]. Sebagai contoh, saya memakai sample alamat rss adalah localhost/websmsmasking/feed/rss –> feed dari aplikasi lokal saya. Anda bisa mengganti alamat ini dengan alamat rssfeed yang anda inginkan, namun untuk mendapatkan feed dari situs online, anda juga harus menjalankan program secara online (terhubung ke internet, karena simplepie akan mengakses alamat dari feed tersebut secara langsung.)

Step 5 : Menampilkan Feed

  1. Ketikkan script berikut,
    <?php
    //file name : rss.php
    //author : littleflow3r
    include 'initRSS.php';
    include 'connect.php';
    //get the feed and show it
    echo "<h1> RSS News Update </h1>";
    foreach ($feed->get_items(0,4) as $item):
    $permalink = $item->get_permalink();
    $title = $item->get_title();
    $desc = $item->get_description();
    echo '<a href="'.$permalink.' ">'; echo $title; echo '</a>';
    echo "<br>";
    echo $desc;
    echo "<br>"; echo "<br>";
    //insert to database
    $q = "INSERT into tb_rss (link, title, description) VALUES('$permalink','$title','$desc')";
    $result = mysql_query($q);
    endforeach;
    ?>
  2. Simpan dalam folder rss dengan nama rss.php
  3. Keterangan : Baris 08 menunjukkan looping dengan foreach sejumlah feed yang didapat dari alamat RSS yang telah ditentukan, dengan menggunakan fungsi get_items(0,4), maksudnya adalah mengambil 4 Feed items dimulai dari record ke 0.
    Baris 09 adalah menyimpan permalink dari setiap items yang didapat dalam variabel $permalink
    Baris 10 adalah mendapatkan judul feed dengan fungsi get_title kemudian disimpan dalam $title.
    Baris 11 adalah mendapatkan deskripsi dari feed dengan fungsi get_desc kemudian disimpan dalam $desc.

Step 6 : Testing Code

  1. Buka browser, jalankan http://localhost/rss/rss.php
  2. Anda akan melihat feed dari alamat rss yang anda masukkan tadi telah tertampil seperti gambar dibawah,
    Result
  3. Cek database anda, lihat bahwa tb_rss telah terisi dengan content rss dari alamat feed anda.
    Tb_RSS

Okay, Done. Happy Trying! Happy Coding :)
Hal yang juga menarik:

Hak Cipta

Semua skrip dan teknik dalam artikel di itx.web.id boleh digunakan sebagaimana kehendakmu tanpa perlu mencantumkan sumber. Kamu tidak boleh mengkopi seluruh artikel, dalam Bahasa Indonesia ataupun diterjemahkan ke dalam bahasa lain.

This post is also available in: English


Related Articles:

: PHP

About the author

obviously, a girl. with sweet smile, off course. turning her 21 years trapped on Informatics departement and just started to having some crush with it lately. she uses wordpress. she loves php. she lo

19 Comments

  • nanang says:

    wah ini nih saya demen banget ama website yang kayak gini… (hassle)

    mas saya minta bantuan donk… :cry:
    sulit nih nampilin rssnya dihalaman utama kayak http://www.cari-info.co.cc .. template saya persis kayak gitu juga mas..

    lah ini kan kayak gini mas…
    —————————–
    <?php
    //file name : rss.php
    //author : littleflow3r
    include 'initRSS.php';
    include 'connect.php';
    —————————-
    (idiot)
    nah file2 di wordpress tuh kan masuk2 mas /wp-content/themes/bla bla bla…
    nah gimana supaya jalan tuh rss / nyatuinnnya di halaman utamanya ato di index templatenya…

    makasih mas, ditunggu ya jawabannya… :-(

  • littleflow3r says:

    @mas nanang
    uhm maksud masnya nih mau nampilin rss di WordPress ya? di halaman template nya, atau di postingan?

    soalnya kalau tutorial diatas kan buat web/aplikasi yang di develop sendiri / bukan pake CMS.

    Tapi kalau cuman mau nampilin rss di template wordpress, kalau gak salah kan cukup pakai widget sudah bisa ta?

    heheh, maaf mungkin belum bisa bantu..

    btw, the author is a girl :cry:

    p.s. mungkin yang punya website, mas itx bisa bantu mas nanang ini :D

    • itx says:

      mbok klo mo ngreply klik reply :-P khn udah disediain threaded comments

    • nanang says:

      hihihih :-D namanya juga hoby coding mbak… mo ditaruh mana aja ya enak, asalkan bisa (lol)

      ihihihihihi mbak polos banget dech.. biki gemes aja..

      ini di taruh di postingan mbak.., jadi postingannya di ilangin.. rss ini ntar terganerate ama SE.. postingan mbak kan ada simplepienya tuh (woot) masak mbak ga tau simplepie digunain untuk apa dikalangan wordpress’ers… hehehe (devil) kalo pake widget kan cuma nampilin aja mbak :)

    • littleflow3r says:

      maklum bukan pengguna fanatik wordpress (lmao)

  • crow says:

    kok saya nggak bs jalan ya?? simplepienyas etelah di download di pindah ke htdocs?? apa harus di apaain kodingan nggka ada yg salah tp nggak mau jalan
    dan muncul

    Warning: require_once(simplepie.inc) [function.require-once]: failed to open stream: No such file or directory in C:\xampp\htdocs\rss\initRSS.php on line 4

    Fatal error: require_once() [function.require]: Failed opening required ‘simplepie.inc’ (include_path=’.;C:\xampp\php\PEAR’) in C:\xampp\htdocs\rss\initRSS.php on line 4 (rofl) mohon bantuannya… :cry:

  • joshua says:

    ini kalo dibuka berulang databasenya banyak yang ganda

  • andrew says:

    Warning: require_once(simplepie.inc) [function.require-once]: failed to open stream: No such file or directory in C:\xampp\htdocs\rss\initRSS.php on line 4

    Fatal error: require_once() [function.require]: Failed opening required ‘simplepie.inc’ (include_path=’.;C:\xampp\php\PEAR’) in C:\xampp\htdocs\rss\initRSS.php on line 4

    eror knp yah?
    thankx

  • ghaane says:

    kalo buat bisa tampil gambar di comment kayak gini gimana, ya??? (gym) 8-) :roll: (idiot)

  • naff says:

    nice info gan …… kita tunggu artikel selanjutnya …. (tongue)

  • ifliandry says:

    terima kasih mas sudah bagi2 ilmu .. :-D

  • zongvoc says:

    Gan ane muncul begini:

    Strict Standards: Non-static method SimplePie_Misc::entities_decode() should not be called statically, assuming $this from incompatible context in C:\xampp\htdocs\rss\simplepie.inc on line 9203

    Strict Standards: Non-static method SimplePie_Misc::entities_decode() should not be called statically, assuming $this from incompatible context in C:\xampp\htdocs\rss\simplepie.inc on line 9203

    Strict Standards: Non-static method SimplePie_Misc::entities_decode() should not be called statically, assuming $this from incompatible context in C:\xampp\htdocs\rss\simplepie.inc on line 9203

    Strict Standards: Non-static method SimplePie_Misc::entities_decode() should not be called statically, assuming $this from incompatible context in C:\xampp\htdocs\rss\simplepie.inc on line 9203

    Strict Standards: Non-static method SimplePie_Misc::entities_decode() should not be called statically, assuming $this from incompatible context in C:\xampp\htdocs\rss\simplepie.inc on line 9203

    Strict Standards: Non-static method SimplePie_Misc::entities_decode() should not be called statically, assuming $this from incompatible context in C:\xampp\htdocs\rss\simplepie.inc on line 9203

    Strict Standards: Non-static method SimplePie_Misc::entities_decode() should not be called statically, assuming $this from incompatible context in C:\xampp\htdocs\rss\simplepie.inc on line 9203

    Strict Standards: Non-static method SimplePie_Misc::entities_decode() should not be called statically, assuming $this from incompatible context in C:\xampp\htdocs\rss\simplepie.inc on line 9203

    Strict Standards: Non-static method SimplePie_Misc::entities_decode() should not be called statically, assuming $this from incompatible context in C:\xampp\htdocs\rss\simplepie.inc on line 9203

    Strict Standards: Non-static method SimplePie_Misc::entities_decode() should not be called statically, assuming $this from incompatible context in C:\xampp\htdocs\rss\simplepie.inc on line 9203

  • bayu says:

    nanya donk… master2x sekalian…. memasang rss feed situs lain ke situs milik kita apakah melangar uu hak cipta? trs bagaimana ethicnya untuk memasang rss feed lain ke situs kita?
    terimakasih

    • darwis says:

      kalo ga salah, rss feed memang dimaksudkan untuk berlangganan content berita tapi kan ga komplit cuma penggalan awal nya saja dan ada link ke website mereka. justru RSS dimaksudkan utk promosi website mereka. Kalo ga mau dipasang ya ga usah mereka kasih link utk rss feed.
      Mohon maaf kalo salah, begitu bukan admin?

  • darwis says:

    Terima kasih… saya praktekan sudah ok.

  • hey there and thank you for your info – I have definitely picked up anything new from right here.
    I did however expertise a few technical points using
    this website, since I experienced to reload the web site many times
    previous to I could get it to load properly.
    I had been wondering if your web host is OK? Not that I am complaining,
    but sluggish loading instances times will sometimes affect your placement in google and can damage your quality score if advertising and marketing
    with Adwords. Anyway I am adding this RSS to my e-mail and could look out for much more of
    your respective fascinating content. Ensure that you update this again very soon.

Leave a Reply

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