【发布时间】:2014-12-30 23:09:42
【问题描述】:
我是 PHP 中 cURL 的新手。我对 curl 选项的使用有疑问。
考虑两个脚本文件:test1.php 和 test2.php 都存在于根 www。我正在使用 Ubuntu 12.04 LTS。 PHP 的 libcurl 版本是 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 时,我可以看到发布的结果。现在,如果我删除包含 CURLOPT_POST 的 curl 选项,该示例仍然有效。即使我将 CURLOPT_POST 设置为 false,也会执行发布并显示结果。那么,是否根本不需要 CURLOPT_POST ?它看起来选项 CURLOPT_POSTFIELDS 负责通过 POST 发送数据,而不使用 CURLOPT_POST 选项。当我在 test2.php 中打印$_SERVER 时,请求方法始终设置为POST(有或没有选项CURLOPT_POST)。
谁能告诉我CURLOPT_POST 选项的确切用法?通过POST发送数据是否需要?
【问题讨论】:
-
是的。要在 curl 中设置请求方法'post',我们设置 curl_setopt($ch, CURLOPT_POST, TRUE);为了发送数据,我们使用关联数组。如果数组是多线程的,那么我们使用 json_encode 作为内部级别。
-
您是否正确阅读了问题?我不是在问这些选项 CURLOPT_POSTFIELDS 和 CURLOPT_POST 的作用。你试过我提到的例子吗?