Hallo sobat mitra tekno niaga, pada tulisan kali ini Kami ingin berbagi tutorial tentang bagaimana cara menggunakan cURL pada PHP. Kenapa Kami ingin membahas ini? karena topik ini sangat hits di kalangan developer PHP di seluruh penjuru dunia. cURL sangat sering digunakan oleh developer-developer handal dalam membuat sebuah komunikasi data tanpa harus membuat sebuah interface aplikasi, jadi komunikasi data terjadi di background proses aplikasi.
Menarik kan? pasti Anda sudah mulai penasaran dan gak sabar ingin segera berkenalan dengan cURL ini. Yuk, mari baca dan simak tulisan ini sampai habis. Di jamin akan memberikan manfaat yang besar untuk menambah pengetahuan Anda. Oke, langsung saja ya.
cURL adalah singkatan dari client URL, sebelum berganti nama menjadi cURL, cURL dulunya bernama HttpGet. Secara gambaran umum cURL merupakan sebuah program dan library yang berfungsi untuk mengirim dan mengambil data melalui URL.
cURL program adalah sebuah program atau tools yang digunakan pada command line (CMD). Syntax dasarnya seperti berikut ini:
curl [OPTIONS] [URL]
cURL library adalah sekumpulan fungsi cURL yang dibungkus dalam sebuah paket libcurl
dan bisa digunakan dalam berbagai macam bahasa pemrograman.
Sekarang Anda sudah tau kan? cURL itu ada 2 versi yaitu versi program yang di jalankan melalui command line (CMD) dan versi library yang disematkan ke dalam compiler atau script bahasa pemrograman. Pada pemrograman PHP, cURL digunakan untuk membuat sebuah HTTP Request dan juga biasa digunakan untuk mengakses sebuah Web Services atau Application Programming Interface (API). Pada fokus tulisan ini Kami akan coba memberikan tutorial, bagaimana cara menjalankan cURL dengan script bahasa pemrograman PHP.
Untuk menjalankan cURL dengan script PHP, Anda harus instal library cURL terlebih dahulu. Jika Anda menggunakan sistem operasi Linux, Anda bisa gunakan perintah seperti berikut ini:
apt install php-curl
Pada sistem operasi Linux, setelah instal selesai secara default cURL akan otomatis diaktifkan.
Selanjutnya jika Anda menggunakan sistem operasi Windows, Anda bisa menggunakan Xampp. Kenapa menggunakan Xampp? karena cURL sudah terinstal pada Xampp, jadi Anda cukup mengaktifkannya saja. Sekedar informasi, di tutorial ini environment system yang Kami gunakan adalah 64x / 64bit. Kami menggunakan Windows 10 dan Xampp dengan versi 7.2.16. Berikut ini adalah cara mengaktifkan cURL di Xampp, mari simak langkah-langkah dibawah ini:
Langkah 1
Buka file php.ini
yang berada pada direktori "C:xamppphp". Pada contoh kasus ini Xampp Kami berada di drive C, jadi sesuaikan dengan lokasi instalasi Xampp Anda masing-masing.
Kemudian cari baris extension seperti berikut ini:
;extension=php_curl.dll
atau
;extension=curl
Hapus tanda titik koma (;)
dan SAVE.
Restart Apache dan cek phpinfo();
.
Untuk melakukan pengecakan cURL sudah aktif atau belum, Anda bisa membuat script phpinfo();
seperti dibawah ini:
<?php phpinfo(); ?>
Lalu SAVE dan letakan di htdocs
atau /var/www/html
, kemudian cobalah buka melalui localhost di browser, atau jika Anda menggunakan Xampp biasanya phpinfo();
sudah tersedia di localhost. Jika muncul phpinfo();
seperti tampilan dibawah ini, berarti cURL pada Web Server Anda sudah Aktif.
Baca Juga: Cara Membuat Koneksi PHP 7 ke SQL Server
Untuk menggunakan cURL pada bahasa pemrograman PHP, ada 4 langkah mendasar yang perlu Anda ketahui, diantaranya yaitu:
curl_init();
.curl_setopt();
.curl_exec();
.curl_close();
.Lihat script dibawah ini, ini adalah contoh sederhana penggunaan cURL library pada PHP.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://sandbox.mitrateknoniaga.com/curl/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
?>
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
Set Option pada cURL yang berfungsi untuk mengembalikan transfer menjadi bentuk String.
Hasilnya:
Script cURL diatas bertujuan untuk menampilkan isi halaman dari URL https://sandbox.mitrateknoniaga.com/curl/
.
Kenapa harus dibungkus dengan fungsi? jawabnya adalah agar script memiliki tata kelola yang baik, terlihat rapih dan menghindari penulisan script yang berulang-ulang, hal ini membuat pemanggilan script tersebut lebih ringkas. Lihat script dibawah ini:
<?php
function curl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
echo curl("https://sandbox.mitrateknoniaga.com/curl/");
?>
Hasilnya:
Pada contoh sederhana ini Kami akan coba mengambil data dari sebuah Web Service atau API yang memiliki respon berupa data berbentuk JSON, lalu akan ditampilkan kembali menjadi sebuah Array
. Lihat contoh script dibawah ini:
<?php
function curl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
$send = curl("https://sandbox.mitrateknoniaga.com/curl/get/");
// mengubah JSON menjadi array
$data = json_decode($send, TRUE);
echo "<pre>";
print_r($data);
echo "</pre>";
?>
Hasilnya:
Pada contoh sederhana ini Kami akan coba mengambil data lagi dari sebuah Web Service atau API yang memiliki respon berupa data berbentuk JSON, lalu akan ditampilkan kembali menjadi sebuah HTML
. Lihat contoh script dibawah ini:
<?php
function curl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
$curl = curl("https://sandbox.mitrateknoniaga.com/curl/get/");
// mengubah JSON menjadi array
$data = json_decode($curl, TRUE);
?>
<!DOCTYPE html>
<html>
<body>
<table border="1">
<tr>
<th> ID </th>
<th> Title </th>
<th> URL </th>
</tr>
<?php foreach($data as $row){ ?>
<tr>
<td><?php echo $row["ID"]; ?></td>
<td><?php echo $row["Title"]; ?></td>
<td><a href="<?php echo $row["URL"]; ?>" target="_blank"><?php echo $row["URL"] ?></a></td>
</tr>
<?php } ?>
</table>
</body>
</html>
Hasilnya:
Pada contoh sederhana ini Kami akan coba mengirimkan data ke sebuah Web Service atau API dengan cURL, menggunakan Method POST
. Contoh yang Kami buat ini di analogikan untuk melakukan update stok barang, setelah proses update stok barang berhasil, akan muncul respon data berbentuk JSON. Lihat contoh script dibawah ini:
<?php
function curl($url, $data){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
// Data Parameter yang Dikirim oleh cURL
$data = array("nama_barang"=>"Komputer","stok"=>"50");
$send = curl("https://sandbox.mitrateknoniaga.com/curl/post/",json_encode($data));
echo json_encode(array('respon'=>$send),JSON_UNESCAPED_SLASHES);
?>
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
Set Option pada cURL yang berfungsi untuk mendeklarasikan Method yang digunakan saat proses kirim data.curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
Set Option pada cURL yang berfungsi untuk menampung data dan parameter yang akan dikirimkan melalui cURL.JSON_UNESCAPED_SLASHES
berfungsi untuk menghilangkan backslash pada hasil respon Web Service atau API.
Hasilnya:
Jika Anda lihat pada contoh "Cara Mengirim Data JSON dengan cURL", data dan parameter dikirim ke Web Service atau API dengan alamat URL https://sandbox.mitrateknoniaga.com/curl/post/
. URL tersebut berisi script untuk menerima data dan parameter yang dikirim melalui cURL. Berikut ini adalah script untuk menerima data dan parameter dari cURL, lihat dibawah ini:
<?php
$arr = json_decode(file_get_contents("php://input"));
if (empty($arr->nama_barang) OR empty($arr->stok)){
echo "Submit gagal! Kolom barang / stok tidak boleh kosong.";
} else {
echo "Submit berhasil! Stok barang dengan nama <b>".$arr->nama_barang."</b> ditambah sebanyak <b>".$arr->stok."</b>.";
}
?>
Baca Juga: Cara Membuat Data Berbentuk JSON dengan PHP
Penggunaan Proxy pada jaringan internet terkadang tanpa kita sadari bisa menjadi penyebab cURL tidak bekerja dengan baik, untuk Anda yang jaringan internetnya menggunakan Proxy bisa menambahkan satu baris Set Option seperti berikut ini:
curl_setopt($ch, CURLOPT_PROXY, "IP_ADDRESS:PORT");
Masukan IP Address dan Port Proxy Anda, lalu letakan Set Option Proxy tersebut tepat dibawah fungsi curl_init();
.
Tutorial ini dijamin WORK 100%, namun bila saat mencoba tutorial ini Anda mengalami "Blank Page" itu bisa jadi karena masalah pengaturan SSL pada Web Server Anda, pastikan extension openssl
di php.ini
telah aktif. Bila openssl
sudah aktif namun masih "Blank Page", dari pengalaman Kami menggunakan cURL permasalahan ini di sebabkan oleh certificates SSL-nya. Anda bisa download certificates SSL pengganti di https://curl.haxx.se/ca/cacert.pem.
Setelah selesai download, letakan file cacert.pem
(file hasil download) di folder Xampp Anda agar mudah di jangkau. Lalu buka php.ini
dan cari 2 baris script seperti dibawah ini:
curl.cainfo="C:xamppapachebincurl-ca-bundle.crt"
openssl.cafile="C:xamppapachebincurl-ca-bundle.crt"
Dirubah menjadi seperti berikut ini:
curl.cainfo="C:xamppcacert.pem"
openssl.cafile="C:xamppcacert.pem"
Lalu SAVE dan Restart Apache.
Untuk beberapa tutorial yang menggunakan JSON di atas, pastikan format JSON yang Anda buat sudah benar dan valid, saran kami gunakan JSON Validator untuk memeriksanya.
Mudah kan? pastikan jangan sampai ada langkah yang terlewat ya.
Demikian pembahasan tentang Tutorial Lengkap Cara Menggunakan cURL pada PHP, semoga tulisan ini bisa memberikan manfaat untuk Anda yang membaca. Sampai jumpa di tulisan berikutnya. Terima Kasih