cURL是利用URL语法规定传输文件和数据的工具,支持很多协议,如HTTP、TCP、Telnet等。cURL是一个通用的库,并非PHP独有。其实,很多功能用file、socket系列函数就可以实现。不过用cURL功能更全面,实现一些复杂的操作更加简单,比如处理Cookie、验证、表单提交、文件上传等。
PHP中建立cURL的基本步骤:
- 初始化
- 设置选项,包括URL
- 执行并获取HTML文档内容
- 释放cURL句柄
<?php
// 1.初始化
$ch = curl_init();
// 2.设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, "http://www.php.net");
// 文件流形式返回
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
// 3.执行并获取HTML文档内容
$output = curl_exec($ch);
// 4. 释放cURL句柄
curl_close($ch);
if ($output === FALSE) {
echo "cURL Error:".curl_error($ch);
}
cURL调试
// 在关闭句柄前,获取cURL执行后这一请求的相关信息
$info = curl_getinfo($ch);
print_r($info);
curl_close($ch);
Array
(
[url] => http://www.php.net/
[content_type] => text/html; charset=utf-8
[http_code] => 200
[header_size] => 532
[request_size] => 50
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 1.32412 // 总耗时
[namelookup_time] => 0.005258
[connect_time] => 0.301054
[pretransfer_time] => 0.301126
[size_upload] => 0
[size_download] => 29969
[speed_download] => 22633
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => -1
[starttransfer_time] => 0.70949
[redirect_time] => 0
[redirect_url] =>
[primary_ip] => 36.51.255.144
[certinfo] => Array
(
)
[primary_port] => 80
[local_ip] => 192.168.142.177
[local_port] => 55116
)