Я новичок в cURL в PHP. У меня вопрос относительно использования параметров завитка.CURLOPT_POST vs. CURLOPT_POSTFIELDS: требуется ли опция CURLOPT_POST?
Рассмотрите два файла сценария: test1.php и test2.php, представленные в корневом www. Я использую Ubuntu 12.04 LTS. Версия libcurl для PHP: 7.22.0.
Содержание test1.php
<?php
$ch = curl_init();
$post_data = array(
'firstname' => 'John',
'lastname' => 'Doe'
);
curl_setopt($ch, CURLOPT_URL, 'localhost/test2.php');
curl_setopt($ch, CURLOPT_POST, TRUE); //is it optional?
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_exec($ch);
curl_close($ch);
?>
Содержание из test2.php
<?php
var_dump($_POST);
?>
Когда я выполнить test1.php через браузер, я могу видеть результаты опубликованы. Теперь, если я удаляю параметр curl, содержащий CURLOPT_POST, пример все еще работает. Даже если я установил CURLOPT_POST в false, сообщение будет выполнено, и результат будет отображаться. Итак, что CURLOPT_POST не требуется вообще? Похоже, что опция CURLOPT_POSTFIELDS
позаботится о передаче данных через POST без использования CURLOPT_POST
. Когда я печатаю $_SERVER
в test2.php, метод запроса всегда устанавливается на POST
(с опцией CURLOPT_POST
или без нее).
Может кто-нибудь, пожалуйста, дайте мне знать точное использование опции CURLOPT_POST
? Требуется ли для отправки данных через POST
?
Да. Чтобы установить метод запроса «post» в curl, мы устанавливаем curl_setopt ($ ch, CURLOPT_POST, TRUE); и для передачи данных мы используем ассоциативный массив. И если массив мультииндикален, мы используем json_encode для внутреннего уровня. –
Вы правильно прочитали вопрос? Я не спрашиваю, что делают эти опции CURLOPT_POSTFIELDS и CURLOPT_POST. Вы пробовали примеры, о которых я упомянул? –