PHP

Mengambil dan Mengirim Data Menggunakan Curl

Oleh Wak Jek• 2 Komentar Arsip

Penggunaan cURL di PHP (bagian 2, habis)

Pada edisi lalu (w3magz edisi #1) telah saya bahas dasar-dasar penggunaan cURL untuk mengambil data dari URL lain di localhost.

<?php

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,'http://localhost/test/curl/data.php');

curl_exec($ch);

curl_close($ch);

?>

Kali ini akan saya lanjutkan pembahasan tentang pengambilan data dari website lain dengan domain yang berbeda. Pada dasarnya teknik yang digunakan adalah sama seperti sebelumnya, hanya saja di bagian CURLOPT_URL kita isikan alamat URL website yang kita tuju, dalam contoh ini adalah website http://w3magz.com, seperti di bawah ini:

<?php

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,'http://w3magz.com');

curl_exec($ch);

curl_close($ch);

?>

Simpan file tersebut sebagai curl-latihan-2.php dan jalankan di browser. Hasilnya akan terlihat seperti ini:

Opsi Curl

Opsi curl adalah parameter-parameter yang dapat kita tambahkan untuk menentukan bagaimana curl dijalankan. Opsi dapat ditentukan dengan memanggil fungsi curl_setopt, dan menambahkan konstan dan nilai ke dalamnya. Konstan opsi curl biasanya diawali dengan CURLOPT_

Di contoh sebelumnya, kita telah menggunakan opsi curl:

<?php

curl_setopt($ch,CURLOPT_URL,'http://w3magz.com');

?>

curl_setopt = fungsi untuk memanggil opsi curl.
$ch = resource sesi curl.
CURLOPT_URL = konstan opsi curl yang nilainya kita isi dengan url http://w3magz.com

Ada banyak konstan dalam opsi curl ini, namun yang paling umum digunakan adalah sebagai berikut:

CURLOPT_HEADER, jika nilai TRUE, menyertakan info response header dalam outputnya.
CURLOPT_NOBODY, jika nilai TRUE, tidak menyertakan body ke dalam outputnya.
CURLOPT_FOLLOWLOCATION, jika nilai TRUE, akan mengikuti semua location recdirect.
CURLOPT_MAXREDIRS, menentukan jumlah redirek yang akan diikuti.
CURLOPT_RETURNTRANSFER, jika nilai TRUE, maka output dari curl_exec() dapat disimpan di dalam variabel, tidak langsung ditampilkan ke browser.
CURLOPT_POST, jika nilai TRUE, untuk melakukan pengiriman data, contohnya mengisi dan mengeksekusi form.
CURLOPT_POSTFIELDS, dapat diisi dengan data yang akan di POST, data dapat berbentuk Array atau string dengan format urlencode seperti field1=value1&field2=value2

Berikut contoh curl dengan opsi menampilkan header response, tanpa body, dan menyimpan output ke dalam variabel $result kemudian menampilkannya.

<?php

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,'http://w3magz.com');

curl_setopt($ch,CURLOPT_HEADER,TRUE);

curl_setopt($ch,CURLOPT_NOBODY,true);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

$result = curl_exec($ch);

echo $result;

curl_close($ch);

?>

Simpan file dengan nama curl-latihan-3.php dan lihat hasilnya di browser, seperti gambar berikut:

Mengirim Data (POST) dengan CURL

Untuk mengepost data dengan curl, kita harus memberi opsi CURLOPT_POST dengan TRUE atau 1, dan mengisi opsi CURLOPT_POSTFIELDS dengan data yang akan dipost.

Contoh:
1. Buatlah sebuah form sederhana, simpan sebagai form.php

<?php

if(isset($_POST['submit'])){

	echo '

```php
';

	print_r($_POST);

	echo '

’;

}

?>

Nama:

Email:

```

Ketika form diisi dan disubmit, maka akan terlihat seperti gambar berikut:

2. Pada gambar form diatas terlihat field nama dengan value john dan field email dengan value john@test.com berhasil di submit. Mari kita coba melakukan hal yang sama, tapi melalui CURL, untuk itu buatlah file curl-latihan-4.php dengan isi sebagai berikut:

<?php

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,'http://localhost/test/curl/form.php');

curl_setopt($ch,CURLOPT_POST,TRUE);

curl_setopt($ch,CURLOPT_POSTFIELDS,'nama=john&email=john@test.com&submit=submit');

curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);

$result = curl_exec($ch);

echo $result;

curl_close($ch);

?>

Maka ketika file curl-latihan-4.php dijalankan, hasilnya adalah seperti gambar berikut:

Dapat kita lihat bahwa hasilnya adalah sama dengan ketika kita melakukan pengsian form secara manual.

Demikianlah pembahasan tentang dasar-dasar penggunaan curl di PHP, semoga bermanfaat.

Note:
response header = Reponse header adalah jawaban dari server atas permintaan dari client/browser, biasanya berisi beberapa informasi server, cache, type maupun status dokumen. Response header tidak ditampilkan di browser.

Tulisan ini sudah berumur: 15 tahun 7 bulan 3 hari. Informasi di dalamnya mungkin sudah tidak relevan, tapi nilai historisnya sangat berharga, terutama bagi saya sebagai penulisnya.

(Dipulihkan dari w3magz.com)

Komentar (2)

Arsip Statis
Hardi Kristawan
sangat membatu
Gea Bianlala
sebelum loading situs lain tentukan dulu ukuran web page nya. loading web page dengan ukuran besar dapat memboroskan bandwidth web server.