author Ahmad Muhardian

Cara Menggunakan CURL untuk Melakukan HTTP Request di PHP


Python Pip

Agar dapat berkomunikasi dengan aplikasi yang lain, aplikasi kita harus mampu melakukan HTTP Request.

Misalnya:

Saat ada input barang terbaru, maka langsung di posting otomatis ke Twitter.

User (Input Barang) --> Aplikasi --> API Twitter

Hal ini harus dilakukan melalui HTTP Request, karena sebagian besar web service atau API menggunakan protokol HTTP.

Salah satu library yang kita bisa gunakan untuk melakukan HTTP Request di PHP adalah CURL.

Apa itu Curl?

Curl adalah sebuah program dan library untuk mengirim dan mengambil data melalui URL.

Curl adalah sebuah program:

Aritnya curl adalah sebuah program atau tools yang digunakan pada command line (CMD).

curl https://www.petanikode.com

Curl adalah sebuah libarary:

Artinya sekumpulan fungsi-fungsi curl yang dibungkus dalam paket libcurl dan bisa digunakan dalam berbagai macam bahasa pemrograman.

Contoh Penerapan Curl

Curl untuk membuat Bot, msialnya Bot Telegram untuk mengetahui cuaca…

Peran Curl pada Pembuatan Bot

Agar server bot bisa mengambil data dari server lain, maka dia harus mampu membuat Http Request, di sinilah Curl digunakan.

Tidak hanya untuk itu saja penerapan Curl…

Bisa juga diterapkan untuk:

  • Mengambil halaman web lalu mengubahnya jadi PDF;
  • Upload dan Download File;
  • Melakukan Login;
  • Scrape;
  • dan sebagainya.

Sejarah Singkat Curl

Curl awalnya bernama HttpGet dari versi pertama sampai ke-3.

HttpGet awalnya hanya mendukung protokol Http saja…

…lalu semakin berkembang dan banyak protokol yang ditambahkan.

Akhirnya pada rilis versi yang ke-4, nama HttpGet tidak lagi digunakan.

Sekarang namanya adalah Curl (mulai ditetapkan pada 20 Maret 1998).

Diberikan nama Curl, karena digunakan untuk download/upload data melalui URL.

Huruf “c” artinya “See” (melihat), jadi kalau cURL di-eja menjadi “See URL”. Selain itu, huruf “c” juga mengacu kepada client.

Instalasi dan Konfigurasi Curl

Seperti yang kita ketahui, ada dua bentuk curl: program dan library.

Jika ingin menginstal programnya, maka gunakan perintah:

apt install curl

Tapi jika ingin menginstal library untuk PHP, maka gunakan perintah:

apt install php-curl

Pada Linux, curl akan otomatis diaktifkan.

Kita bisa mengeceknya dengan kode ini:

<?php

phpinfo();

?>

Silahkan taruh di htdocs atau /var/www/html dan cobalah buka melalui localhost.

Jika muncul seperti ini, berarti curl sudah aktif dan bisa digunakan.

Cek Curl di PHP

Sedangkan untuk Windows (XAMPP), library curl sudah terinstal…

…tinggal kita aktifkan saja.

Caranya:

Silahkan buka file-file ini dengan teks editor.

C:\Program Files\xampp\apache\bin\php.ini
C:\Program Files\xampp\php\php.ini
C:\Program Files\xampp\php\php5\php.ini

Kemudian cari baris yang ini:

;extension=php_curl.dll

Silahkan dihapus titik-komanya (;).

extension=php_curl.dll

Simpan…

Setelah itu, restart server apache…maka sekarang Curl sudah aktif.

Cara Menggunakan Curl pada PHP

Ada 4 langkah penggunaan Curl di PHP:

  1. Inisialisasi;
  2. Set Option;
  3. Eksekusi Curl;
  4. Tutup Curl;

Setiap kita ingin menggunakan fungsi Curl, kita haru melakukan inisialisasi terlebih dahulu dengan cara seperti ini:

<?php 
// create curl resource 
$ch = curl_init(); 

Fungsi yang digunakan untuk melakukan inisialisasi adalah curl_init().

Setelah itu, kita harus memberikan nilai options seperti alamat URL yang akan dituju, format hasilnya, header, dll.

Untuk memberikan options, kita menggunakan fungsi curl_setopt() seperti ini:

 // set url 
curl_setopt($ch, CURLOPT_URL, "example.com"); 

//return the transfer as a string 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

Berikutnya melakukan eksekusi:

// $output contains the output string 
$output = curl_exec($ch); 

Pada tahapan eksekusi, Curl akan melakukan HTTP Request sesuai dengan options yang diberikan.

Fungsi yang digunakan untuk mengeksekusi Curl adalah curl_exec().

Karena kita sudah memberikan options hasil Curl akan berupa string, maka variabel $output akan berisi sebuah string.

Kita bisa melihat isinya dengan echo.

echo $output;

Terakhir menutup Curl dengan fungsi curl_close(), karena sudah tidak digunakan lagi.

// close curl resource to free up system resources 
curl_close($ch); 

Kode lengkapnya akan seperti ini:

<?php 
    // persiapkan curl
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, "example.com");

    // return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    // $output contains the output string 
    $output = curl_exec($ch); 

    // tutup curl 
    curl_close($ch);      

    // menampilkan hasil curl
    echo $output;
?>

Saat kita eksekusi skrip PHP di atas, maka akan menghasilkan seperti ini:

Contoh Hasil Eksekusi CURL

Halaman di atas didapat dari example.com.

Coba ubah URL-nya menjadi https://www.google.co.id/.

<?php 
    // persiapkan curl
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, "https://www.google.co.id/");

    // return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    // $output contains the output string 
    $output = curl_exec($ch); 

    // tutup curl 
    curl_close($ch);      

    // menampilkan hasil curl
    echo $output;
?>

Hasilnya:

Contoh Hasil Eksekusi CURL ke Google

Mmbungkus Curl dalam Fungsi

Baru kode di atas bisa kita buat dalam bentuk fungsi agar tidak diketik ulang terus menerus.

Fungsinya akan menjadi seperti ini:

<?php

function http_request($url){
    // persiapkan curl
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, $url);

    // return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    // $output contains the output string 
    $output = curl_exec($ch); 

    // tutup curl 
    curl_close($ch);      

    // mengembalikan hasil curl
    return $output;
}

Lalu kita tinggal gunakan seperti ini:

<?php

$data = http_request("https://www.petanikode.com/");

Mengambil Data JSON dengan Curl

Biasanya webservice menyediakan data berupa JSON. Data JSON ini bisa kita ambil dengan CURL, lalu melakukan parse dengan fungsi json_decode().

Contoh:

Kita akan mengambil data JSON dari Github: https://api.github.com/users/petanikode

<?php

function http_request($url){
    // persiapkan curl
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, $url);
    
    // set user agent    
    curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');

    // return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    // $output contains the output string 
    $output = curl_exec($ch); 

    // tutup curl 
    curl_close($ch);      

    // mengembalikan hasil curl
    return $output;
}

$profile = http_request("https://api.github.com/users/petanikode");

// ubah string JSON menjadi array
$profile = json_decode($profile, TRUE);

echo "<pre>";
print_r($profile);
echo "</pre>";

Perhatikan options yang kita berikan pada contoh di atas…

Kita memberikan option user agent, karena untuk mengakses API Github, kita harus menyertakan user agent.

Hasilnya akan seperti ini:

Contoh Hasil Eksekusi CURL ke Github

Mengubah Data JSON ke HTML

Kita dapat melakukan apapun terhadap data yang kita dapatkan. Bisa disimpan ke database atau ditampilkan ke dalam HTML.

Seperti ini:

<?php

function http_request($url){
    // persiapkan curl
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, $url);
    
    // set user agent    
    curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');

    // return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    // $output contains the output string 
    $output = curl_exec($ch); 

    // tutup curl 
    curl_close($ch);      

    // mengembalikan hasil curl
    return $output;
}

$profile = http_request("https://api.github.com/users/petanikode");

// ubah string JSON menjadi array
$profile = json_decode($profile, TRUE);
?>

<!DOCTYPE html>
<html>
<head>
    <title>Curl Data JSON</title>
</head>

<body>

<img src="<?php echo $profile['avatar_url']; ?>" width="64" />
<br>
<p>
Nama: <?php echo $profile["name"] ?><br>
URL: <a href="<?php echo $profile["html_url"] ?>"><?php echo $profile["html_url"] ?></a><br>
Lokasi: <?php echo $profile["location"] ?>
</p>

</body>
</html>

Hasilnya:

Contoh Hasil CURL JSON ditampilkan dalam HTML

Apa Selanjutnya?

Kita sudah belajar dasar-dasar penggunaan Curl.

Sebenarnya masih banyak yang belum dicoba, seperti:

  • Melakukan Login melalui Curl;
  • Menggunakan Cookie;
  • Mengambil data dari link redirect;
  • Download File;
  • dan sebagainya.

Lebih lanjut tentang Curl dan PHP, bisa dibaca di dokumentasi http://php.net/manual/en/book.curl.php

Baca Juga ini

Tutorial PHP dan MySQL: Membuat Aplikasi CRUD [Studi Kasus Pendaftaran Siswa Baru]

Tutorial PHP dan MySQL: Membuat Aplikasi CRUD [Studi Kasus Pendaftaran Siswa Baru]

Pada tutorial ini, kita akan belajar membuat aplikasi sedehana. Yaitu, pendaftaran siswa baru menggunakan PHP dan MySQL. Aplikasi ini hanya sebatas untuk melakukan operasi CRUD saja.

Cara Menggunakan Twig Template Engine pada Slim Framework

Cara Menggunakan Twig Template Engine pada Slim Framework

Belajar menggunakan template engine Twig pada Slim Framework. Template Engine adalah bagian dari framework untuk membuat template. Twig merupakan sebuah template engine yang diklaim cepat, aman, dan fleksibel untuk PHP.

Cara Menggunakan Dompdf di Codeigniter

Cara Menggunakan Dompdf di Codeigniter

Dompdf merupakan salah satu pustaka PHP untuk membuat PDF. Dompdf membuat PDF dari HTML, sehingga lebih praktis. Selain itu juga, Kita bisa menggunakan CSS di dalamnya. Saat ini Dompdf mendukung CSS versi 2.1. Untuk menggunakan Dompdf di Codeigniter, silahkan ikuti langkah-langkah berikut ini. 1. Aktifkan Autoload ComposerKita akan menginstal Dompdf melalui Composer. Karena itu, autoload untuk Composer perlu diaktifkan. Silahkan buka file application/config/config.php, kemudian isi bagian autoload Composer seperti ini.

Cara Menjalankan PHP Melalui CMD

Cara Menjalankan PHP Melalui CMD

Sudah lama sekali saya tidak otak-atik Windows, karena setiap hari menggunakan Linux. Saat ini saya menggunakan komputer lab. dengan sistem operasi Windows 7 dan sudah terinstal XAMPP. Pada Linux, perintah php sudah bisa langsung dikenali pada terminal, sedangkan pada CMD Windows masih belum. Kecuali melalui Shell di XAMPP. Pada tulisan ini, saya akan berbagi cara konfigurasi Windows agar dapat mengenali perintah php di CMD maupun PowerShell.

Cara Mengatasi Serangan XSS pada CodeIgniter

Cara Mengatasi Serangan XSS pada CodeIgniter

Yakin aplikasimu sudah aman dari serangan XSS? Pada tutorial ini kita akan belajar melakukan serangan XSS dan juga mitigasi agar aplikasi kita terhindar dari XSS.

Helper CodeIgniter untuk Membuat Tanggal dalam Bahasa Indonesia

Helper CodeIgniter untuk Membuat Tanggal dalam Bahasa Indonesia

Saat kita membuat sbuah tanggal otomatis dengan fungsi Date(), kita akan mendapatkan hasil dalam format bahasa inggris. Contoh, Date(’d F Y’) akan menghasilkan output 22 December 2016 (sesui tanggal sekarang). Format penanggalan ini mungkin tidak begitu penting bagi sistem yang tidak digunakan di tempat formal. Namun, bagaimana kalau untuk membuat surat atau laporan formal. Pastinya, kita dituntut untuk menggunakan bahasa indonesia yang baik dan benar. Hal yang perlu kita lakukan untuk merubah tanggal ke dalam bahasa indonesia adalah merubah nama-nama bulan dari fungsi Date().