我们有多少cURL类型?

时间:2014-12-08 18:23:51

标签: php linux curl

我刚开始卷曲,我在php编程,我学会了使用这样的卷曲代码:

<?php
$content = 'PHP cURL';
$curl = curl_init('http://www.example.com/submit/get.php');
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, 'var='.$content);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, FALSE);
$result = curl_exec($curl);
curl_close($curl);
?>

我想使用一个需要curl命令的API,但在api文档中有一些像这样的卷曲代码:

curl -X POST https://example.com/api/mail.send.json -d api_user=headortail -d api_key=XXXXXXXX

我很困惑,我不知道它是什么类型的卷曲。我可以在php中使用吗?

2 个答案:

答案 0 :(得分:1)

  • libcurl是C库。
  • cURL是一个命令行工具,用于使用 libcurl 的URL语法传输数据。
  • PHP有his own binding libcurl库。

在您的示例中,您要使用的API包含使用cURL命令行工具的示例。

cURL有很多选项来配置请求,同样,你必须使用PHP配置请求。

在我们提供的示例中:

curl -X POST https://example.com/api/mail.send.json -d api_user=headortail -d api_key=XXXXXXXX

PHP中的等效代码是:

<?php
       $params = array(
           'api_user' => 'headortail',
           'api_key'  => 'XXXXXXXX'
       );
       $curl = curl_init('https://example.com/api/mail.send.json');
       curl_setopt($curl, CURLOPT_POST, 1);
       curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
       curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // TRUE to return the transfer as a string of the return value of curl_exec() instead of outputting it out directly.
       $result = curl_exec($curl);
       curl_close($curl);
?>

您可以在cURL man page中找到的cURL工具选项。 然后,使用PHP中的curl_setopt函数,您应该在脚本中配置等效选项:

在命令行中-d参数设置HTTP POST数据,然后,在PHP中,您需要使用 CURLOPT_POSTFIELDS 选项(您将在curl_setopt文档中找到它) curl_setopt 功能:

curl_setopt($curlResource, CURLOPT_POSTFIELDS, <array | string>);

答案 1 :(得分:-1)

cURL是用于发出HTTP请求的C库。

您的第一个示例使用PHP绑定您是否可以从PHP访问它。

您的第二个示例使用命令行应用程序。

man curl将为您提供解释命令行开关的文档。您可以使用它在第一个示例中使用的绑定将命令行版本转换为PHP命令。