* [ ] Curl使用说明
```
new \Curl($data);
```
data(array):curl公共配置(详细参数请看类)
* [ ] 连贯操作
~~~
//多线程
$curl=new \Curl(array);
$curl->url('https://ip138.com')->coding('utf8', 'gb2312')->save(); //使用save保存设置
$curl->url('https://baidu.com')->save();//使用save保存设置
$data=$curl->exec(); //使用exec执行,返回数组
echo $data[0];
echo $data[1];
//多线程
$curl=new \Curl(array);
$curl->url('https://ip138.com')->coding('utf8', 'gb2312')->save('ip138'); //使用save保存设置
$curl->url('https://baidu.com')->save('baidu');//使用save保存设置
$data=$curl->exec(); //使用exec执行,返回数组
echo $data['ip138'];
echo $data['baidu'];
//单线程
$curl=new \Curl(array);
echo $curl->url('https://ip138.com')->coding('utf8', 'gb2312')->exec(); //方法1
echo $curl->url('https://ip138.com')->coding('utf8', 'gb2312')->exec(true); //方法2
//静态方法(参数请看类)
echo \Curl::call(['url'=>'https://ip138.com','coding'=>['utf8', 'gb2312']]);
// 代理IP
$ip = [
"status" => false,
"ip" => "x.x.x.x",
"port" => "xxxx",
"userpass" => "xxxx:xxx",
"type" => "HTTP",
"auth" => "BASIC",
];
$curl = new \Curl(["ip" => $ip]);
// 使用代理ip
$curl->url("http://xxxx.com")->ip(true)->save('a');
// 不适用代理ip
$curl->url("http://xxxx.com")->ip(false)->save('b');
// 执行请求
$data = $curl->exec();
$a = ['ip' => Curl::headKey($data['a'], '\"\>', '\<'), 'address' => Curl::headKey($data['a'], '来自:')];
$b = ['ip' => Curl::headKey($data['b'], '\"\>', '\<'), 'address' => Curl::headKey($data['b'], '来自:')];
//静态方法
1.通过名称获取指定头部信息
headkey($header, $start, $end = ''); //header=内容,start=起始字符串,end=结尾字符串
2.获取头部内容 (远程获取内容时,头部信息和内容一起时,可通过此方法获取单独获取头部信息)
gethead($data); //data=内容
3.获取body内容 (远程获取内容时,头部信息和内容一起时,可通过此方法获取单独获取body)
getbody($data);//data=内容
4.分离头部和body内容成array (远程获取内容时,头部信息和内容一起时,可通过此方法分离)
headbody($data);//data=内容
~~~
* [ ] 公共参数配置说明
*****
| 参数名 | 数据类型 | 默认值 | 参数说明 | 对应 curl 属性 |
| --- | --- | --- | --- | --- |
| url | string | null | 设置请求地址(必选) | |
| time | int | 10 | 设置超时时间,单位为秒 | CURLOPT_CONNECTTIMEOUT |
| zip | string | null | 解压缩gzip (gzip,deflate) | CURLOPT_ENCODING |
| export | boolean | true| true 成功只将结果返回,不自动输出任何内容, false 成功只返回TRUE,自动输出返回的内容 | CURLOPT_RETURNTRANSFER |
| sslpeer| boolean | false | 是否检查证书,false 不检查,true 检查 | CURLOPT_SSL_VERIFYPEER |
| sslhost | int | 2 | 1 检查服务器SSL证书中是否存在一个公用名(common name)。译者注:公用名(Common Name)一般来讲就是填写你将要申请SSL证书的域名 (domain)或子域名(sub domain) 2 检查公用名是否存在,并且是否与提供的主机名匹配 | CURLOPT\_SSL\_VERIFYHOST |
| jump | boolean | false | 是否自动跳转 | CURLOPT_FOLLOWLOCATION |
| ifhead | boolean | false | 是否返回头部信息 | CURLOPT_HEADER |
| ifbody | boolean | false | 是否返回body信息 | CURLOPT_NOBODY |
| agent | string | $_SERVER['HTTP_USER_AGENT']) 的值或 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; | 设置HTTP请求中包含一个*"User-Agent: "*头的字符串 | CURLOPT_USERAGENT |
| referer | string 或 boolean | false | 是否设置 referer | CURLOPT_AUTOREFERER、CURLOPT_REFERER |
| ip | boolean 或 array | [] | 设置代理通道 ,如果传入数组,结构为:["status" => "boolean,true开启代理,false不开启代理,可通过ip方法动态设置开启关闭代理状态","ip" => "代理IP地址","port" => "代理端口号", "userpass" => "代理账号:密码,username:password的格式", "type":"设置CURLOPT_PROXYTYPE,可选值:HTTP,SOCKS5","auth" => "设置CURLOPT_PROXYAUTH ,可选值:BASIC,NTLM"] | CURLOPT_PROXY、CURLOPT_PROXYPORT、CURLOPT_PROXYUSERPWD、CURLOPT_PROXYTYPE、CURLOPT_PROXYAUTH |
| cookie | string 或 boolean | false | 设定HTTP请求中*"Cookie: "*部分的内容。多个cookie用分号分隔,分号后带一个空格(例如, "*fruit=apple; colour=red*") | CURLOPT_COOKIE |
| mode | string | GET| 请求方式 GET、POST、PUT、DELETE | CURLOPT_CUSTOMREQUEST、CURLOPT_POST |
| data | array 或 string | []| 请求的数据,如果请求方式为GET,会自动将data拼接到url参数里面 | CURLOPT_POSTFIELDS、CURLOPT_URL |
| head | array| []| 设置请求头,例['X-Requested-With: XMLHttpRequest',''] | CURLOPT_HTTPHEADER |
| coding | array 或 string | []| 结果数据编码转换,[to, from], 从from编码格式转换为to的编码格式 | 无 |
| arr | boolean|true| json数据转为数组或者对像(true=数组,false=对像),只有数据为json才会生效 | 无 |
| json | boolean| false | 是否json提交(get不支持json),请求头新增:Content-Type: application/json;Content-Length:xxx | 无 |
| ajax | boolean | false | 是否ajax提交,请求头新增:X-Requested-With: XMLHttpRequest | 无 |
| text | boolean | false | 是否文本提交 (get不支持text)| 无 |
| file | string | false | 保存的文件名| 无 |
- 开始使用
- 配置文件
- 路由模式
- AutoLoad类
- 启动文件
- __construct
- SetRouting
- SetAlias
- SetStop
- SetError
- Access
- SetWorker
- SetClassFile
- SetClassDir
- Run
- OpenLoad
- LinuxStartAll
- Session类
- 使用说明
- set
- get
- delete
- pull
- has
- id
- Cookie类
- 使用说明
- set
- get
- delete
- pull
- has
- TempLets类
- 模板语法
- 模板标签
- html
- show
- assign
- obtain
- Request类
- get
- post
- host
- referer
- getip
- localip
- header
- body
- file
- scheme
- protocolversion
- uri
- path
- querystring
- method
- Response
- SendFile
- FileStream
- SendData
- SetStatus
- SetHead
- SetMime
- WebSend
- redirect
- dumpJson
- dump
- come
- ps
- Frame类
- GetWeb
- ViewFile
- RoutingData
- SetClassFile
- SetClassDir
- GetMime
- FileMime
- LoadDir
- StartDir
- IsJson
- ArrJson
- JsonFormat
- ObStart
- GetConfig
- ConfigDir
- TempDir
- GetRunData
- GetStatic
- IsDebug
- SetDebug
- GetDebugInfo
- GlobalVariables类
- 使用说明
- set
- get
- delete
- pull
- has
- id
- Mysql类
- 新版本
- 第三方
- Thinkorm
- Medoo
- 旧版本
- Mysql 配置格式
- 项目中操作数据库
- 项目场景
- 项目数据库配置
- 项目数据库中间类
- 项目中操作数据表
- 连贯操作
- where
- table
- data
- order
- field
- limit
- page
- group
- having
- join
- tabname
- union
- sql
- link
- link_base
- lock
- CURD 操作
- 写入数据
- 数据删除
- 数据查询
- 数据更新
- 数据统计操作
- count
- sum
- max
- min
- avg
- 操作DEMO
- CurdTrait.php
- 项目Model层操作表.md
- Curl类
- Method类
- SslAes类
- layui_zqadmin