EDIT : Dari php5 ke atas, penggunaan http_build_query
direkomendasikan:
string http_build_query ( mixed $query_data [, string $numeric_prefix [,
string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
Contoh sederhana dari manual:
<?php
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo http_build_query($data) . "\n";
/* output:
foo=bar&baz=boom&cow=milk&php=hypertext+processor
*/
?>
sebelum php5:
Dari manual :
CURLOPT_POSTFIELDS
Data lengkap untuk diposting dalam operasi HTTP "POST". Untuk memposting file, tambahkan nama file dengan @ dan gunakan jalur lengkap. Jenis file dapat ditentukan secara eksplisit dengan mengikuti nama file dengan tipe dalam format '; type = mimetype'. Parameter ini dapat dikirimkan sebagai string yang dikodekan url seperti 'para1 = val1 & para2 = val2 & ...' atau sebagai larik dengan nama bidang sebagai kunci dan data bidang sebagai nilai. Jika nilainya adalah larik, header Tipe Konten akan disetel ke multipart / form-data. Mulai dari PHP 5.2.0, file yang diteruskan ke opsi ini dengan awalan @ harus dalam bentuk array agar dapat berfungsi.
Jadi sesuatu seperti ini harus bekerja dengan sempurna (dengan parameter yang diteruskan dalam array asosiatif):
function preparePostFields($array) {
$params = array();
foreach ($array as $key => $value) {
$params[] = $key . '=' . urlencode($value);
}
return implode('&', $params);
}
http_build_query($data)
karena&
pemisah default.