cURL dan libcurl dgn PHP
Jika Anda belum pernah mendengar cURL:
cURL (dibaca: si URL) singkatan dari Client URL dan dikembangkan oleh Daniel Stenberg pada tahun 1998 sebagai alat bantu command line untuk transfer files dengan sintaks URL melalui bermacam-macam protokol (FTP, HTTP, HTTPS, SCP, SFTP, TELNET, LDAP, dsb). Sedangkan libcurl adalah library portable yang menyediakan interface (untuk berbagai bahasa pemrograman, seperti Perl, Python, PHP, dsb) terhadap fungsionalitas cURL. Contoh menggunakan cURL lewat CLI (Command Line Interface) untuk me-retrieve (mendapatkan file HTML) sebuah halaman web:
$ curl -L google.com
Parameter -L menyebabkan cURL mengikuti halaman redirect (sebagaimana google.com akan meredirect ke google.co.id jika dari IP Indonesia). Contoh lainnya adalah mempost data (yang biasanya kita lakukan melalui form):
$ curl -d “author=gedex&email=gedex@dudu.lz&comment=test&comment_post_ID=5 \
http://gedex.web.id/wp-comments-post.php
Perintah di atas akan mempost sebuah komentar di halaman WordPress saya untuk postingan dengan ID = 5. Parameter -d menyebakan cURL menggunakan metode POST dengan data yang dipost harus dalam encoding url. Nah bisa kita lihat manfaat cURL kan? Kita bisa memfungsikan cURL sebagai client (browser). Bahkan lebih dari itu, kita bisa menggunakan cURL untuk membuat webspider (layaknya googlebot). Binding libcurl untuk PHP juga sudah tersedia. Jika Anda menggunakan PHP versi 4.0.2 ke atas, maka fungsi-fungsi cURL sudah ada. Untuk memastikan fungsi cURL sudah ada, bisa di cek lewat phpinfo(). Saya menggunakan PHP v5.2.5 dan libcurl yang terinstall adalah versi 7.16.0. Pada contoh di atas, kita bisa me-retrieve sebuah halaman web dan mempost data menggunakan cURL berbasis CLI. Lalu bagaimana menggunakannya dalam PHP?
Langkah awal menggunakan cURL dalam PHP adalah menginisialisasi sebuah session (atau disebut juga membuat cURL resource), yaitu dengan:
$ch = curl_init(); //buat resource cURL
Setelah sebuah resource cURL terbentuk, curl_init() akan memberikan penangan (handle) berupa fungsi-fungsi untuk meset berbagai opsi (curl_setopt()), untuk mulai menjalankan cURL sesuai dengan opsi yang diset (curl_exec()), dan kemudian menutup session dari resource yang dibentuk tersebut (curl_close()). Misal kita ingin mendapatkan halaman http://gedex.web.id/, maka kita bisa menggunakan fungsi curl_setopt():
$ch = curl_init(); //buat resourcce cURL
//set opsi URL
curl_setopt($ch, CURLOPT_URL, “http://gedex.web.id/”);
Setelah itu kita bisa mendapatkan halamannya dengan memanggil fungsi curl_exec(), yang secara otomatis (defaultnya) akan mencetak halaman tersebut.
$ch = curl_init(); //buat resourcce cURL
//set opsi URL
curl_setopt($ch, CURLOPT_URL, “http://gedex.web.id/”);
//dapatkan halaman URL dan berikan (cetak) ke browser
curl_exec($ch);
Untuk membebaskan pemakaian resource sistem, ada baiknya menutup session dari resource cURL yang telah dibuat dengan fungsi
curl_close():
$ch = curl_init(); //buat resourcce cURL
//set opsi URL
curl_setopt($ch, CURLOPT_URL, “http://gedex.web.id/”);
//dapatkan halaman URL dan berikan (cetak) ke browser
curl_exec($ch);
//tutup resource cURL
curl_close($ch);
Pada contoh di atas, output halamannya langsung dicetak setelah memanggil fungsi curl_exec($ch).
Agar output dikembalikan dari fungsi curl_exec() (sehingga bisa ditampung ke sebuah variabel untuk pemrosesan lainnya) tanpa langsung mencetak, kita perlu menset CURLOPT_RETURNTRANSFER ke true. Contohnya:
$ch = curl_init(); //buat resourcce cURL
//set opsi URL dan opsi RETURNTRANSFER
curl_setopt($ch, CURLOPT_URL, “http://gedex.web.id/”);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//dapatkan halaman URL dan berikan ke variabel $output
$output = curl_exec($ch);
//tutup resource cURL
curl_close($ch);
//ganti kata ‘gedex’ dengan ‘dini’
$output = str_replace(‘gedex’, ‘dini’, $output);
//cetak output
echo $output;
Pada contoh di atas, halaman web (file HTML) tidak langsung dicetak setelah pemanggilan curl_exec($ch), tapi di berikan ke variabel $output yang selanjutnya digunakan untuk mengganti kata ‘gedex’ menjadi kata ‘dini’. Nah, inilah salah satu opsi yang tersedia dari curl_setopt().
>…….. error : fatal error: call to undefined function curl_init()
Curl error is beacause curl extension is not loaded.
1. Look for “php.ini” file, probably in Windows folder.
2. There is text line:
Code: ;extension=php_curl.dll
3. Uncomment it like this:
Code: extension=php_curl.dll
4. reastart apachenya….
Referensi:
* using libcurl with PHP
* Using the CURL library in PHP
* http://www.webmasterworld.com/
Calender motoGP 2009
![]()
Badan motor dunia FIM telah mengumumkan kalender sementara MotoGP untuk musim balap 2009. Kalender sementara dibuat untuk mengakomodir absennya GP China dan masuknya Hungaria.
Format kalender kejuaraan MotoGP 2009 masih sama, yakni 18 lomba balap. Lomba di awali di Qatar 12 April dan diakhiri di Valencia 8 November.
Dalam kalender sementara yang dirilis FIM di autosport, Jumat (25/7/2008), tidak tercantum Grand Prix China. Pengganti China adalah Sirkuit Balatonring di Hungaria.
Kalender sementara MotoGP 2009:
12 April Qatar Doha/Losail
26 April Jepang Motegi
3 Mei Spanyol Jerez
17 Mei Prancis Le Mans
31 Mei Italia Mugello
14 Juni Katalunya Katalunya
27 Juni Belanda Assen
5 Juli Amerika Serikat Laguna Seca
19 July Jerman Sachsenring
26 Juli Inggris Donington Park
16 Agustus Rep. Ceska Brno
30 Agustus Indianapolis Indianapolis
13 September San Marino Misano
20 September Hungaria Lake Balaton
4 Oktober Portugal Estoril
18 Oktober Australia Phillip Island
25 Oktober Malaysia Sepang
8 Nopember Valencia Valencia
** kutipan dari : http://sports.okezone.com/