curl()
作用:进行远程 HTTP 请求。
语法: mixed curl(mixed $options[, int $wait = 0])
参数:
$options
设置请求的选项(数组),也可以设置为一个 URL 地址;自ModPHP 2.2.4
起,可以将其设置为一个索引数组来执行批处理请求。$wait
批处理请求时等待前一个处理完成的超时秒数,默认0
,即异步并行处理。
返回值:
- 返回请求结果。如果执行批处理请求,则返回一个包含所有请求结果的数组。
依赖扩展:
说明:
$options
参数设定远程请求的各种选项,最多支持下面这些参数。
string url
请求地址。string method
请求方式: POST 或 GET(默认)。mixed data POST
数据, 支持关联数组、索引数组、URL 查询字符串以及原生POST
数据, 要发送文件,需要在文件名前面加上@前缀(兼容PHP 5.5.0+
),可选在文件名后加 ;type={Mime-Type}
来设置文件的 MIME 类型。- mixed cookie 发送 Cookie, 支持关联数组、索引数组和 Cookie 字符串。
- string referer 来路页面地址。
- string userAgent 客户端信息,默认值为 curl/版本号。
- array requestHeaders 请求头部信息,支持索引数组和关联数组。
- int followLocation 跟随跳转次数,默认值 0,即不跟随跳转。
- bool autoReferer 跟随跳转时自动设置来路页面,默认值 true。
- bool sslVerify 是否使用 SSL 安全验证,默认值 false。
- string proxy 代理服务器(格式: 8.8.8.8:80)
- string clientIp 客户端 IP 地址。
- bool onlyIpv4 只按 IPv4 协议解析 DNS,默认值 ture。
- int timeout 超时设置,单位 秒,默认值 10。
- string username HTTP 访问认证用户名。
- string password HTTP 访问认证密码。
- string charset 设置目标页面编码,方便转换为 UTF-8,如不设置,则尝试自动检测。
- bool parseJSON 始终解析 JSON(ModPHP 1.4.9 之后),默认 false,ModPHP 1.5.1 之后会根据响应头自动解析 JSON。
- bool decodeUnicode 解析 Unicode 字符,默认为 false,ModPHP 2.2.4 起可用,在这之前,默认是解析的。
- callable success 请求成功时的回调函数。
- callable error 请求失败时的回调函数。
- array extra 其他 CURL 选项参数,即 curl_setopt_array() 函数的第二个参数。
如果要请求多个网页,相比使用 for 或者 while 等循环方式一个一个来进行访问,批处理能够同时并行地发送请求和获取结果,其效率要远大于循环进行的单个请求,因此请优先考虑批处理。
示例:
<?php
echo curl('http://ip.cn'); //进行一个 HTTP 请求,将输出当前服务器的 IP 地址
echo curl(array('url'=>'http://ip.cn', 'userAgent'=>'Google Chrome')); //进行请求并设置请求选项
$options = array( //批处理选项
'http://modphp.hyurl.com', //使用默认参数进行请求
array( //自定义参数进行请求
'url'=>'http://127.0.0.1/modphp/test.php',
'method'=>'post',
'data'=>array(
'test'=>'test',
'file'=>'@test.txt' //发送文件
),
),
);
print_r(curl($options)); //执行批处理请求并打印结果
print_r(curl_info()); //打印 CURL 请求信息
print_r(curl_cookie_str()); //打印所有返回的 Cookie,如果有