WHAT'S NEW?
Tampilkan postingan dengan label Tutorial. Tampilkan semua postingan
Tampilkan postingan dengan label Tutorial. Tampilkan semua postingan


CURL Merupakan library PHP yang memungkinkan anda untuk mentransfer data melalui berbagai protokol. CURL ini banyak digunakan sebagai cara untuk mengirim atau meminta data dari satu atau beberapa situs termasuk didalamnya seperti interaksi API dan oAuth. Pada dasarnya permintaan dengan CURL tidak dibatasi dalam hal apapun mirip seperti permintaan HTTP dasar, juga bisa untuk upload FTP dan yang lebih kompleks interaksi otentifikasi dengan situs HTTPS tertutup.

Setting CURL untuk Web

Untuk mengaktifkan curl pada distribusi PHP kita maka perlu kita pastikan bahwa library curl sudah ada dan kita perlu edit php.ini. Pada contoh ini, setting CURL yang akan ditunjukkan di bawah ini menggunakan distribusi PHP dari paket XAMPP Windows. Asumsi bahwa distribusi XAMPP terinstall di folder c:\xampp.
Edit file php.ini yang terdapat pada direktori C:\xampp\apache\bin\php.ini dan cari baris dengan entri seperti di bawah ini :
;extension=php_curl.dll
Dan hilangkan tanda titik koma di depannya sehingga menjadi :
Extension=php_curl.dll
Setelah diubah, simpan file tersebut dan restart server web anda.

Tes Konfigurasi Anda

Tes di konfigurasi curl Anda dengan php_info() function dan lihat apakah modul curl sudah di-load dengan baik. Apabila modul tersebut sudah aktif maka pada informasi php_info() akan terlihat baris seperti pada gambar di bawah.



Contoh Penggunaan

Berikut adalah contoh penggunaan curl di dalam script PHP. Ketik code di bawah ini dan coba eksekusi, script ini akan membuka situs Yahoo dengan tampilan seperti pada gambar di bawah.

<?php
 $ch = curl_init();
 curl_setopt ($ch, CURLOPT_URL, "http://www.yahoo.com/");
 curl_setopt ($ch, CURLOPT_HEADER, 0);
 curl_exec ($ch);
 curl_close ($ch);
?>



Masih banyak lagi contoh – contoh penggunaan curl, bisa dilihat di website curl sendiri




Grabbing adalah teknik untuk mengambil teks atau secara umum obyek yang ada di suatu situs lain kemudian diletakkan ke web kita. Konsep grabbing ini berbeda dengan konsep web service karena data teks yang diambil melalui grabbing ini tidak disajikan dalam bentuk format tertentu seperti halnya XML atau JSON. Namun teks yang diambil berada di halaman web situs, atau dengan kata lain terselip di dalam kode-kode HTML.

Untuk melakukan grabbing ini, kita bisa menggunakan CURL Belajar PHP CURL. Dengan CURL ini nanti, kita bisa baca semua kode HTML dari suatu situs lalu kita ambil informasi yang kita inginkan dan kemudian informasi tersebut kita tampilkan di website kita.

Sekarang akan saya berikan cara membaca kode HTML dari suatu situs menggunakan CURL.  Function :
<?php

function bacaHTML($url){

    // inisialisasi CURL

    $data = curl_init();

    // setting CURL

    curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($data, CURLOPT_URL, $url);

    // menjalankan CURL untuk membaca isi file

    $hasil = curl_exec($data);

    curl_close($data);

    return $hasil;

}
?>

Function bacaHTML() di atas nantinya akan menghasilkan isi file HTML dari suatu sistus. Sebagai contoh, misalkan anda ingin menampilkan isi file HTML yang ada di halaman depan dari blog PHP Indonesia (http://blog.phpindonesia.or.id/) , maka buat saja script berikut ini :

<?php

function bacaHTML($url){

    // inisialisasi CURL

    $data = curl_init();

    // setting CURL

    curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($data, CURLOPT_URL, $url);

    // menjalankan CURL untuk membaca isi file

    $hasil = curl_exec($data);

    curl_close($data);

    return $hasil;

}

echo bacaHTML('http://blog.phpindonesia.or.id/');

?>

Jika anda jalankan di localhost dengan URL http://localhost/namafolderanda/index.php maka akan muncul tampilan dari blog PHP Indonesia.


Tapi kalau agan tidak terkoneksi dengan internet, maka tidak muncul.

Ok yang tadi itu hanya pemisalan saja gan, langsung saja bagaimana cara mengambil konten dari website lain .
Pertama kita harus mengetahui struktur dari website yang akan kita ambil kontennya, lihat dari inspect element bagian yang ingin kita ambil kontennya. Disini saya ambil contoh kita akan mengambil konten berita terkini dari kompas.com.



Setelah kita tahu bagian yang mana ingin kita ambil, selanjutnya kita lihat inspect element.



Setelah itu kita bisa langsung membuat syntaxnya. Pertama buat dulu syntax curl, sebelumnya karena induk yang akan kita ambil kontennya tidak memiliki ID sebagai penggantinya kita akan mengambil menggunakan class disini saya buat fungsi agar mudah dipakai.

<?php

function bacaHTML($url){

    // inisialisasi CURL

    $data = curl_init();

    // setting CURL

    curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($data, CURLOPT_URL, $url);

    // menjalankan CURL untuk membaca isi file

    $hasil = curl_exec($data);

    curl_close($data);

    return $hasil;

}
?>

Setelah itu kita akan inisialisasi DOM HTML sekaligus mencoba fungsi diatas dan mengambil kompas.com. sisipkan syntax dibawah ini dibawah fungsi diatas.

//mengambil data dari kompas

$bacaHTML = bacaHTML("http://www.kompas.com");


//membuat dom dokumen

$dom = new DomDocument();


//mengambil html dari kompas untuk di parse


@$dom->loadHTML($bacaHTML);

Sampai disini kita hanya berhasil memanggil seluruh HTML dari kompas.com. selanjutnya kita akan mengambil konten tertentu dari HTML menggunakan DOM HTML.

//nama class yang akan dicari

$classname="latest__wrap";


//mencari class memakai dom query

$finder = new DomXPath($dom);

$spaner = $finder->query("//*[contains(@class, '$classname')]");

Dengan syntax diatas kita dapat mengambil data dari semua tag yang memiliki class latest__wrap. Sebelumnya mari kita lihat dulu tag konten yang akan kita ambil.




Setelah kita tahu maka kita akan langsung mengambil isi dari tag tersebut. Maka sisipkan syntax berikut dibawah syntax sebelumnya :

//mengambil data dari class yang pertama
$span = $spaner->item(0);
//dari class pertama mengambil 2 elemen yaitu a yang menyimpan judul dan link dan span yang menyimpan tanggal
$link =  $span->getElementsByTagName('a');
$tanggal = $span->getElementsByTagName('span');

Dengan itu kita akan mengambil seluruh link dan tanggal/waktu dari tag masing – masing, tetapi pada saat ini kedua variable itu masij berbentuk array dom, maka kita akan merapikannya menjadi array normal dengan menyisipkan lagi syntax berikut :

$data =array();
foreach ($link as $val){
    $data[] = array(
        'judul' => $link->item($no)->nodeValue,
        'link' => $link->item($no)->getAttribute('href'),
        'tanggal' => $tanggal->item($no)->nodeValue,
        );
    $no++;
}
?>

Syntax diatas untuk nodeValue itu untuk mengambil isi dari tag, sedangkan getAttribute untuk mengambil atribut. Sampai tahap ini kita sudah selesai mengambil data. Selanjutnya kita akan menampilkannya dengan cara mengeluarkan seluruh data yang ada pada $data dengan syntax ini 

<style>
     table,th,td{
         border:1px solid #000;
         font-size:12px;
     }
 </style>
 <h2>Grabbing dari Kompas.com</h2>
<table>
     <thead>
         <th>No</th>   
         <th>Judul</th>   
         <th>Link</th>   
         <th>Tanggal</th>   
     </thead>
    <tbody>
         <?php
         $no=1;
         foreach($data as $val)
         {
             ?>
             <tr>
                 <td><?php echo $no;?></td>
                 <td><?php echo $val['judul'];?></td>
                 <td><?php echo $val['link'];?></td>
                 <td><?php echo $val['tanggal'];?></td>
             </tr>
             <?php
             $no++;
         }
         ?>
     </tbody>
 </table>

Dengan begitu kita selesai melakukan pengambilan data dan mengeluarkannya dalam bentuk table.



Sekian tutorial mengambil data dari website lain (Teknik Grabbing), Semoga Bermanfaat..

Download