阅读(4795) (8)

curl()

2017-06-30 18:18:57 更新

作用:进行远程 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,如果有