LestaD
@LestaD
Веб разработчик

Как отправить в php_curl значение подобно консоли -d?

Я делаю. запрос через консоль в ElasticSearch:
curl -XPOST 'localhost:9200/events/play/_bulk' -d '
{"metadata": {}}
{"element": 1}'

Как отправить то что передается после -d в PHP с помощью расширения php_curl?

$c = curl_init();
$opts = [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_URL => $address,
CURLOPT_BINARYTRANSFER => true,
CURLOPT_POST => true,
// CURLOPT_POSTFIELDS = [], // ???
];
curl_setopt_array($c, $opts);
$res = curl_exec($c);
curl_close($c);

По сути надо передать string с переносами(\n).
Через консоль всё работает. В PHP запросы отправляются, но в Эластике изменений нет.

Не надо предлагать использовать exec и драйвер для elasticsearch

Заранее всем спасибо!
  • Вопрос задан
  • 2456 просмотров
Решения вопроса 1
zoonman
@zoonman
⋆⋆⋆⋆⋆
Добавьте
curl_setopt($c, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));  
$pf = "{\"metadata\": {}}\n{\"element\": 1}";
curl_setopt($c, CURLOPT_POSTFIELDS, $pf);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы