Php Curl добавление параметров - PullRequest
9 голосов
/ 16 июня 2011

Я новичок, я пытаюсь получить скрипт для запуска другого скрипта с Curl в PHP, но, похоже, он не посылает параметры.

Есть ли отдельная функция для добавления параметров?

<?php
$time = time();
$message = "hello world";


$urlmessage =  urlencode( $message );

$ch = curl_init("http://mysite.php?message=$urlmessage&time=$time");

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
?>

Может ли кто-нибудь указать мне правильное направление ??

Ответы [ 3 ]

16 голосов
/ 16 июня 2011

Вам необходимо curl_setopt () вместе с параметром CURLOPT_POSTFIELDS.Это будет отправлять данные параметры на целевую страницу.

curl_setopt($ch, CURLOPT_POSTFIELDS, 'foo=1&bar=2&baz=3');

PS: также проверять http_build_query () , что удобно при отправке многих переменных.

5 голосов
/ 16 июня 2011

вам нужно установить CURLOPT_POST как true и CURLOPT_POSTFIELDS => параметры

  curl_setopt($ch, CURLOPT_POST, true); 
   curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);

предложение, установите 'CURLOPT_RETURNTRANSFER' в значение true, чтобы вернуть перевод в виде строки возвращаемого значения curl_exec($ch) вместо вывода его напрямую

4 голосов
/ 17 июля 2018

Принятый ответ хорош для POST, но что, если OP хотел специально получить GET? Некоторые API-интерфейсы REST указывают метод http, и часто это не очень хорошая процедура POST, когда вы должны получать GETting.

Вот фрагмент кода, который выполняет GET с некоторыми параметрами:

$endpoint = 'http://example.com/endpoint';
$params = array('foo' => 'bar');
$url = $endpoint . '?' . http_build_query($params);
curl_setopt($ch, CURLOPT_URL, $url);

Это приведет к тому, что ваш запрос будет выполнен с GET до http://example.com/endpoint?foo=bar. Это метод http по умолчанию, если только вы не установили его на что-то другое, например POST с curl_setopt($ch, CURLOPT_POST, true) - так что не делайте этого, если вам специально нужно GET.

Если вам нужно использовать один из других методов http (например, DELETE или PUT), используйте curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method). Это также работает для GET и POST.

...