Должно работать нормально.
$data = array('name' => 'Ross', 'php_master' => true);
// You can POST a file by prefixing with an @ (for <input type="file"> fields)
$data['file'] = '@/home/user/world.jpg';
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
curl_exec($handle);
curl_close($handle)
У нас есть два варианта: CURLOPT_POST
, который включает HTTP POST, и CURLOPT_POSTFIELDS
, который содержит массив наших данных для отправки. Это может быть использовано для отправки данных в POST
<form>
s.
Важно отметить, что curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
принимает данные $ в двух форматах, и это определяет, как будут закодированы данные записи.
$data
как array()
: данные будут отправлены как multipart/form-data
, что не всегда принимается сервером.
$data = array('name' => 'Ross', 'php_master' => true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
$data
как строка в кодировке URL: данные будут отправлены как application/x-www-form-urlencoded
, что является кодировкой по умолчанию для отправленных данных HTML-формы.
$data = array('name' => 'Ross', 'php_master' => true);
curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($data));
Надеюсь, это поможет другим сэкономить свое время.
См .: