Cara menggunakan php to curl

Seteleh beberapat saat saya tidak meng update artikel, kali ini saya akan kembali membuat artikel tentang belajar curl php. Pada artikel ini saya akan membahas crul iniselengkap lengakpnya. Mulai dari php curl post, php curl get dan beberapa penggunaan php crul lain nya.

Pengertian cURL

cURL adalah sebuah program atau library yang berfungsi untuk mengambil data dari url, atau dapat juga berfungsi untuk mengirimkan sebuah request http atau http(s) ke sebuah website. Dengan kata lain curl ini adalah sebuah library yang fungsinya sama dengan sebuah browser.

Baca Juga : Perbedaan http dan http(s)

Cara Install cURL

Untuk menggunakan cURL dan php cURL ini tentunya kita harus menginstall nya terlebih dahulu .Untuk menginstall cURL dan php cURL pada linux centos kita hanya perlu mengetikan perintah dasar linux di bawah ini

yum -y install crul php-curl

Baca Juga : Perintah Dasar Linux

Sedangkan untuk di windows kita cukup merubah configurasi php.ini

;extension=curl
menjadi
extension=curl

Penggunaan cURL pada php

Sekarang kita akan bahas bagaimana cara menggunakan cURL pada php.akan saya bagi menjadi 4 tahap yaitu :

  1. Tahap inisialisasi dengan menggunakan perintah curl_init();
  2. Mendeklarasikan variabel yang akan di kirim dengan menggunakan perintah curl_setopt();
  3. Tahap ekeskusi dengan menggunakan perintah curl_exec();
  4. Tahap mengosongkan atau menutup perintah yang curl yang sudah di eksekusi sebulum nya dengan menggunakan perintah curl_close();

Sekarang kita akan mulai implementasikan php cURL.

php curl get

Pada bagian ini saya akan memeberikan contoh sederhana untuk menggunakan curl dengan metode get

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "rumahcode.org"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
echo $output;
curl_close($ch);

php curl post

Sedangkan untuk menggunakan cURL dengan metode POST akan sedikit berbeda namun tahapan nya akan tetap sama. Coba perhatikan contoh php curl di bawah ini

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, 'rumahcode.org');
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $output = curl_exec($ch); 
    echo $output; 
    curl_close($ch);
    

pada variabel

;extension=curl
menjadi
extension=curl
0 di atas adalah sebuah field yang akan kita kirimkan. misalkan saya akan megirimkan 2 buah variabel maka deklarasiakan variabel data itu seperti ini

$data = array('username' => 'rumahcode', 'password' => 'passwordnya');

contoh kode di atas saya akan melakukan login dengan menggunakan cURL.

Baca Juga : Membuat Form Login dengan Bootstrap

Mendapatkan Respon Error cURL

Untuk mendapatkan pesan error dari curl kamu dapat menggunakan perintah

if (curl_errno($ch)) {
    $error_msg = curl_error($ch);
}

Letakan perintah di atas sebelum perintah 

;extension=curl
menjadi
extension=curl
1.

Mengirimkan Header dengan cURL

Untuk mengirimkan header dengan curl kamu dapat menggunakan perintah curl_setopt(); seperti contoh di bawah ini

  $header = array("Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", "Cache-Control: max-age=0", "Connection: keep-alive", "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7","Accept-Language: en-us,en;q=0.5","Pragma: ");
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36');
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  curl_setopt($ch, CURLOPT_REFERER, 'https://www.google.com');
  curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
  curl_setopt($ch, CURLOPT_AUTOREFERER, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_TIMEOUT, 10);

perintah di atas adalah contoh penggunaan php curl yang membuat kita seolah olah kita melakukan membuak halaman website dengan menggunakan browser Google Chrome.

Penerapan cURL (client URL) seringkali digunakan untuk mendapatkan atau mengirim data dari/ke sebuah situs dengan URL tertentu, baik dengan cara GET maupun POST. Apakah hanya itu penerapannya? Ternyata tidak, cURL juga dapat digunakan untuk mengunduh/download file dari sebuah situs tertentu. Lebih jauh lagi, dengan kemampuan tersebut dapat dibuat sebuah robot script yang dapat secara otomatis mengunduh file-file yang diinginkan dari sebuah situs.

Pada tutorial kali ini, saya mencoba menshare pengalaman pribadi bagaimana membuat script robot dengan cURL di PHP yang digunakan untuk mengunduh ratusan file dari sebuah situs secara otomatis.

Teknik Dasar cURL di PHP untuk Mengunduh File

Di dalam PHP, biasanya sudah terdapat library cURL yang sudah bisa langsung dimanfaatkan.

Langkah-langkah dasar untuk mengunduh file dari sebuah situs dengan script PHP adalah sebagai berikut:

  1. Tentukan URL dari file yang akan dijadikan target unduhan
  2. Lakukan inisialisasi cURL
  3. Lakukan setting URL file ke dalam option di cURL
  4. Lakukan setting nama file hasil unduhan di dalam komputer
  5. Jalankan request cURL

Berdasarkan langkah di atas, kita bisa susun script PHP seperti berikut

<?php
// url target unduhan
$url = "http://...";
// inisialisasi curl handler
$ch = curl_init();
// setting option url target di curl
curl_setopt($ch, CURLOPT_URL, $url);
// setting option nama file hasil unduhan 
$filename = "...";
$fp = fopen($filename, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
// jalankan curl
curl_exec($ch);
// tutup curl
curl_close($ch);
// tutup file hasil unduhan
fclose($fp);
?>

Bagian terpenting dari script di atas adalah bagian berikut ini

$filename = "...";
$fp = fopen($filename, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);

Perintah di atas dimaksudkan untuk secara otomatis membuat file baru di komputer dengan nama $filename, yang mana file ini merupakan hasil unduhan via cURL. Apabila diinginkan nama file hasil unduhan ini sama dengan nama file aslinya, maka nilai dari variabel $filename ini bisa diisi dengan string nama file aslinya.

Adapun mode 'wb' dalam fopen() bermakna bahwa file tersebut dibuka dengan mode ‘write binary’. Pemilihan mode ‘binary’ dalam proses creating file ini dirasa lebih aman dibandingkan jika non binary.

Implementasi di Robot AutoDownload

Selanjutnya teknik di atas akan kita coba gunakan untuk mengunduh beberapa file target. Misalkan diberikan sebuah file berisi list URL file yang akan diunduh sbb:

urls.txt

http://i363.photobucket.com/albums/oo75/rosihanari/gammu01-3.jpg
http://i363.photobucket.com/albums/oo75/rosihanari/tabel-1.jpg
http://i363.photobucket.com/albums/oo75/rosihanari/fb01.jpg
http://i363.photobucket.com/albums/oo75/rosihanari/fb03.jpg
http://i363.photobucket.com/albums/oo75/rosihanari/fb02.jpg
http://i363.photobucket.com/albums/oo75/rosihanari/plot1.png
http://i363.photobucket.com/albums/oo75/rosihanari/plot2.png
http://i363.photobucket.com/albums/oo75/rosihanari/plot3.png
http://i363.photobucket.com/albums/oo75/rosihanari/paging.jpg

Selanjutnya kita akan buat sebuah script robot dalam PHP untuk mengunduh sebuah file yang ada di file urls.txt di atas.

getfile.php

<?php

// open file urls.txt
$myfile = fopen("urls.txt", "r");
// proses membaca isi file urls.txt
while(!feof($myfile)) {
	// baca baris demi baris url
	$url = fgets($myfile);

	// mengambil nama file dari url
	$split = explode("http://i363.photobucket.com/albums/oo75/rosihanari/myimages/", $url);
	$filename = $split[1];
	
	// proses unduh dengan curl
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	$fp = fopen($filename, 'wb');	
	curl_setopt($ch, CURLOPT_FILE, $fp);
	curl_exec($ch);
	curl_close($ch);
	fclose($fp);
}

// tutup file urls.txt
fclose($myfile);

?>

Pada script PHP di atas, nama file hasil unduhan disesuaikan dengan nama file aslinya dari URL. Dalam hal ini, cara paling mudah untuk mendapatkan nama filenya adalah dengan melakukan explode() dikarenakan nama URL nya sama semuanya (yang beda hanya nama filenya saja).

Dengan membuat robot autodownload di atas, akan sangat membantu proses download file apalagi jumlah file yang diunduh sangat banyak. Studi kasus di atas saya terapkan untuk mengunduh sekitar 200 an file image yang saya hostingkan di photobucket. Hal ini dilakukan karena photobucket tidak menyediakan fitur untuk download all files sekaligus, melainkan hanya tersedia fitur download per file 🙁

Sebenarnya di PHP, selain menggunakan cURL, bisa pula dibuat script unduh file dengan memanfaatkan function file_get_content(). Namun, teknik ini seringkali gagal dikarenakan adanya proteksi dari server target yang tidak membolehkan pembacaan isi file targetnya.

Semoga tutorial ini bisa bermanfaat dan silakan dikembangkan sendiri sesuai kebutuhan yang diinginkan.

Apa itu PHP cURL?

Client URL atau umumnya disingkat menjadi cURL, adalah project open source yang berupa program yang berjalan pada command line (CMD), namun saat ini sudah tersedia library pada banyak bahasa pemrograman seperti PHP, Phyton, dan masih banyak lainya.

Apa itu Fungsi cURL?

Client URL (cURL) adalah command yang biasa digunakan untuk mengirim dan mengambil data melalui URL. cURL Command dapat dijalankan pada command line Linux.

Tuliskan langkah instalasi cURL?

Cara Install dan Menggunakan cURL pada Windows.
Download cURL di curl.se/windows/. ... .
Ekstrak cURL yang tadi sudah Anda download. ... .
Agar bisa digunakan di Command Prompt (cmd) kita perlu memasukkan cURL ke dalam path terlebih dahulu. ... .
Setelah itu pilih Environment Variables..

Apa itu cURL api?

Curl adalah “alat baris perintah untuk mentransfer data yang ditentukan dengan sintaks URL”, yang membuatnya berguna untuk berinteraksi dengan REST APIs dan sumber situs lainnya.