Было бы лучше, если бы вы могли предоставить свою версию PHP.
Начиная с PHP 5, некоторые удобные функции связаны в ядре вместо отдельных библиотек PECL.
// If you are working with normal HTTP requests, simply do this.
$curl_post_data = http_build_query($curl_post_data);
curl_setopt($ch, CURLOPT, $url);
// This is a boolean option, although passing non-zero integer
// will be type-casted to TRUE, count() is not the proper way.
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curl_post_data);
// If you really want the next statement be meaningful, do this.
// Otherwise your HTTP response will be passed directly into
// the output buffer.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
Сохранитьпомните, что CURLOPT_POSTFIELDS в PHP поддерживает загрузку файлов, добавляя символ «@» и полный путь к файлу в качестве значения.
Вы не хотите вызывать http_build_query () в таких ситуациях.
Пример кода для загрузки файла
$curl_post_data = array('file1' => '@/home/user/files_to_be_uploaded');
Хотя вы можете по желанию указать тип MIME, см. Документацию для получения дополнительной информации.
Как уже говорилось, проверьте свой PHPверсия первая.Эта функция работает только в PHP 5, AFAIK, есть компании, которые все еще поддерживают PHP 4.x на своих серверах.