curl 函数

curl函数

PHP 支持 libcurl 库,能够连接通讯各种服务器、使用各种协议。libcurl 目前支持的协议有 http、https、ftp、gopher、telnet、dict、file、ldap。 libcurl 同时支持 HTTPS 证书HTTP POSTHTTP PUTFTP 上传(也能通过 PHP 的 FTP 扩展完成)、HTTP 基于表单的上传代理cookies用户名+密码的认证

原理

使用 cURL 函数的基本步骤:

  1. 先使用curl_init() 初始化 cURL会话
  2. 接着可以通过curl_setopt()设置需要的传输选项,可设置POST提交方式
  3. 然后使用curl_exec()来执行会话,
  4. 当执行完会话后使用curl_close()关闭会话。

使用场景

  1. 接口编程中获取接口API;
  2. 使用此函数封装成一个类,以POST或GET方式请求微信提供的url,如获取微信的ACCESS_TOKEN;
  3. 发送POST表单;
  4. 上传文件,PHP5.5之后建议使用CURLFile()对象上传文件;
  5. 其他常见的操作…

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
//example-1:微信POST请求
function http_request($url, $data = null){
$ch = curl_init();
$option = [
CURLOPT_URL=>$url,
CURLOPT_SSL_VERIFYHOST=>false,
CURLOPT_SSL_VERIFYPEER=>false,
CURLOPT_RETURNTRANSFER=>true,
];

if(!empty($data)) {
$option += [
CURLOPT_POST=>true,
CURLOPT_POSTFIELDS=>$data
];
}
curl_setopt_array($ch,$option);

$output = curl_exec($ch);
curl_close($ch);
return $output;
}

//example-2:获取网页内容
$ch = curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);

坚持原创技术分享,您的支持将鼓励我继续创作!