Mengirim Mixed Format dengan PHP cURL

PHP cURL

Dalam pembahasan kali ini, saya akan mencoba memaparkan bagaimana teknik melakukan pengiriman data dengan POST method dari suatu server ke server lain menggunakan cURL pada PHP.

Sebagai contoh,  misalkan teman-teman punya data di localhost (PC local). Selanjutnya teman-teman ingin mengirim suatu data tersebut ke server hosting.kita tahu bahwa hampir semua admin hosting menutup port untuk koneksi database nya jika diakses secara remote.Lalu bagaimana kita bisa mengirimkan data antar 2 Komputer ?

Disinilah cURL dimanfaatkan, hanya saja secara default di beberapa paket program yang berisi Apache, MySQL dan PHP seperti misalnya AppServ, belum menyediakan modul CURL di dalam PHP nya. Dengan kata lain, sobat malasbaca harus menambahkan modul CURL ini sendiri.

Berikut langkah-langkah untuk menambahkan module cURL jika belum terinstall

  1. Buka file php.ini
  2. ctrl+f , dan cari kata extension=php_curl.dll, Jika ada tanda semicolon (titik koma) di depannya, maka hilangkanlah.
  3. download file cURL library libeay32.dll dan ssleay32.dll. teman-teman dapat mendownload file libeay32.dll di https://www.dll-files.com/libeay32.dll.html
  4. download file ssleay32.dll di https://www.dll-files.com/ssleay32.dll.html
  5. setelah itu letakkan pada direktori C:\Windows\System32. Kemudian restart komputer.

untuk mengecek apakah modul cURL sudah terinstal dengan baik atau belum di PHP Anda, silakan buat script berikut ini :

<?php phpinfo(); ?>

Kemudian jalankan script tersebut di browser. Jika dalam tampilan yang muncul di browser muncul informasi berikut ini

phpinfo

maka cURL sudah terinstal di PHP Anda.

Lanjut, ke pembahasan bagaimana kita bisa mengirim mixed format cURL pada PHP ?

Secara umum, jika kita menggunakan CURL untuk mengirim beberapa data (x, y dan z) dengan POST method ke server misal ke http://palak.in, perintahnya adalah sbb:

<?php
	$url = 'http://localheart/Tutorialku/curl_mixed/tangkap.php';
	
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL,$url);
	curl_setopt($ch, CURLOPT_POST,1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
	$result = curl_exec ($ch);
	curl_close ($ch);

berhubung kita akan POST data mixed format post data string dll dan post data file (binary), maka scriptnya menjadi :

<?php
	$url = 'http://localheart/Tutorialku/curl_mixed/tangkap.php';


	$ch = curl_init();
	if (function_exists('curl_file_create')) 
	{//jika ada fungsi curl_file_create maka gunakan
		$cFile = curl_file_create('file.txt');
	} 
	else 
	{//jika TIDAK ADA fungsi curl_file_create maka akali dengan tanda @ seperti pada bash (teman-teman linux geek pasti tau lah :v)
		$cFile = '@' . realpath('file.txt');
	}

	$post = array('name' => 'Nando','age'=>19,'file'=> $cFile);
	curl_setopt($ch, CURLOPT_URL,$url);
	curl_setopt($ch, CURLOPT_POST,1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
	$result = curl_exec ($ch);
	curl_close ($ch);
        print_r($result);//cetak rekursif output response server yang ditembak
        die();//breakpoint

curl_file_create parameternya adalah file yang mau diPOST. Sekedar saran, masukkan absolute path-nya contoh D:/test/file.txt

lalu,kita buat script sederhana untuk melihat data-data apa saja yang diPOST pada tangkap.php yang berisi :

<?php
	echo "<pre>";
	var_dump ($_FILES);//membedah semua variable files

	var_dump ($_POST); //membedah semua variable post
	die();
?>

Setelah itu jika berhasil outputnya akan seperti ini :

Output response dari server setelah diPOST

Sekian dulu pembahasan kali ini, . Jika kalian punya pertanyaan atau pendapat, silahkan isi di kolom komentar.

About Roby Firnando 3 Articles
a Computer Nerd , 0% Have Fun

Be the first to comment

Leave a Reply

Your email address will not be published.


*