Intereting Posts
Найти количество дней между двумя датами в php читать xml-файл с php Учебники для выпадающего меню в PHP Как разрешить HTML в белом списке с помощью PHP Настройка сервера LocalHost для MacOS Sierra для использования PHP и apache phpize – Не удается найти config.m4. Использование Zend_Auth для защиты всех контроллеров Memcache не будет скрывать или очищать память как предотвратить эту ошибку: Предупреждение: mysql_fetch_assoc () ожидает, что параметр 1 будет ресурсом, boolean задан в … в строке 11 Вычисление разницы дат MySQL и PHP в днях Как минимизировать вывод php html без удаления условных комментариев IE? Является ли Symfony лучшим выбором, чем Zend для магазина веб-разработки (10+), потому что это полноценная структура стека? Используйте mysql_fetch_array () вместо foreach () вместо while () Драйвер переключения CodeIgniter из mysql -> mysqli PHP – Расширение против библиотеки против класса – когда и почему

Как включить данные массива в CURLOPT_POSTFIELDS?

Я в основном обрабатываю HTML-форму с помощью PHP, а затем отправляю ее в другом месте для хранения и обработки. Однако у меня возникают проблемы с отправкой списков массивов через завиток. Мне нужно сделать это таким образом, что когда он попадает на принимающий сервер, он выглядит так, как если бы он пришел прямо из входной формы.

Я не получаю никаких ошибок при использовании функции, если я сериализую массивы, однако это делает их нечитаемыми сервером, поэтому им необходимо сохранить формат сообщения, как если бы они поступали из HTML-формы.

Я использую Kohana, но принципы Curl все те же, вот мой код:

$path = "/some/process/path"; $store = "http://www.website.com"; $url = $store . $path; $screenshots = array(); $screenshots[0] = 'image1.jpg'; $screenshots[1] = 'image2.jpg'; $screenshots[2] = 'image3.jpg'; $videoLinks = array(); $videoLinks[0] = 'video1.wmv'; $videoLinks[1] = 'video2.wmv'; $params = array( 'id' => '12', 'field1' => 'field1text', 'field2' => 'field2text', 'field3' => 'field3text', 'screenshots' => $screenshots, 'videoLinks' => $videoLinks, ); $options = array( CURLOPT_HTTPHEADER => array("Accept: application/json"), CURLOPT_TIMEOUT => 30, CURLOPT_POST => TRUE, CURLOPT_POSTFIELDS => $params, ); $data = Remote::get($url, $options); $json = json_decode($data); 

Приветствия.

    Related of "Как включить данные массива в CURLOPT_POSTFIELDS?"

     CURLOPT_POSTFIELDS => http_build_query($params), 

    http://php.net/manual/en/function.http-build-query.php

    Я просто хотел поделиться альтернативой http_build_query ()

    Вы можете включать массивные входы с помощью CURLOPT_POSTFIELDS, предоставляя каждый элемент subarray отдельно.

    Вместо…

     $videoLinks = array(); $videoLinks[0] = 'video1.wmv'; $videoLinks[1] = 'video2.wmv'; $params = array( ... 'videoLinks' => $videoLinks; ... ); 

    … сделай это …

     $params = array( ... 'videoLinks[0]' => 'video1.wmv'; 'videoLinks[1]' => 'video2.wmv'; ... ); 

    Я новичок в cURL и его PHP-версии, но насколько я знаю, вы можете делать массивы в своем варианте просто прекрасно, просто не забывайте, что если вы отправляете массив значений field =>, тогда вам нужно установить заголовок Content-Type для multipart / form-data для правильной интерпретации. При этом ваш массив для параметров форматируется неправильно. У вас есть дополнительная запятая после окончательного значения массива. Возможно, это то, что делает его борцом.