首页 存档 技术 查看内容

PHP 备忘录 Curl(重中之重的是代理设置以及拿来即用的并发函数实例)

2018-3-30 13:00 |来自: 互联网 311 0

摘要: 常用选项 // HTTP-HEADER 头$arrHearders = ; $strUrl = '请求地址'; $ch = curl_init();// 设置请求 User-Agent, 值是字符串curl_setopt($ch, CURLOPT_USERAGENT, $strUserAgent);// 设置请求 HTTP-HEADER 头,值 ...

常用选项

// HTTP-HEADER 头$arrHearders = [    'Accept-Language:zh-CN,zh;q=0.8',    'Connection:keep-alive',
];

$strUrl = '请求地址';

$ch = curl_init();// 设置请求 User-Agent, 值是字符串curl_setopt($ch, CURLOPT_USERAGENT, $strUserAgent);// 设置请求 HTTP-HEADER 头,值是数组curl_setopt($ch, CURLOPT_HTTPHEADER, $arrHearders);// 禁止 SSL 验证curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// 请求的 URL 地址curl_setopt($ch, CURLOPT_URL, $strUrl);// curl_getinfo 结果里面增加请求的 Headers 信息curl_setopt($ch, CURLINFO_HEADER_OUT, true);// cURL 函数执行的最长秒数curl_setopt($ch, CURLOPT_TIMEOUT, 300);// 在尝试连接时等待的秒数。设置为0,则无限等待curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);// 执行结果中是否包含响应的 Headers 头信息curl_setopt($ch, CURLOPT_HEADER, false);// curl_exec 执行的结果不自动打印出来curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);// 执行$result = curl_exec($ch);// 获得执行的的信息$arrCurlExecInfo = curl_getinfo($ch);// 关闭 curl curl_close($ch);

var_dump($arrCurlExecInfo);if (!isset($arrCurlExecInfo['http_code'])
    || 200 != $arrCurlExecInfo['http_code']) {    die('请求失败');
}if (empty($result)) {    die('请求结果为空');
}

var_dump($result);

POST 请求

// 设置为 POST 请求
curl_setopt($ch, CURLOPT_POST, 1);// POST 请求的数据. 如果数据是 URL-encoded 字符串时, 数据会被编码成 application/x-www-form-urlencoded. 如果数据是 Array 数组, 数据编码成 multipart/form-data
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

COOKIE 相关

// 一部分是自行设定 COOKIE 值curl_setopt($ch, CURLOPT_COOKIE, '设置请求中的 COOKIE 部分'); 

// 另外一部分是先访问一次,拿到 COOKIE 保存到指定文件,然后再次访问的时候从文件当中读取出来curl_setopt($ch, CURLOPT_COOKIEJAR, '指定保存到的文件'); // 把访问得到的 COOKIE 保存到指定文件里面curl_setopt($ch, CURLOPT_COOKIEFILE, '保存 COOKIE 的文件路径名称'); // 从指定文件当中读取 COOKIE

代理相关

// 代理协议 CURLPROXY_HTTP (默认值,代理为 HTTP、HTTPS 都设置此值)、 CURLPROXY_SOCKS4、 CURLPROXY_SOCKS5、 CURLPROXY_SOCKS4A、CURLPROXY_SOCKS5_HOSTNAMEcurl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);// 代理地址curl_setopt($ch, CURLOPT_PROXY, $strProxyServer);// 代理端口号,也可以写在代理地址里面curl_setopt($ch, CURLOPT_PROXYPORT, $strProxyPort);// 代理的用户名和密码curl_setopt($ch, CURLOPT_PROXYUSERPWD, "$strProxyUser:$strProxyPassWord");

批处理相关

/**
* 调用方法时传入 url 数组,返回 curl_info 信息、错误信息、执行结果信息
* @param arr $arrUrls   url 数组
* @retunr arr $arrResponses 返回 curl 执行情况、错误信息、返回结果的**数据
* [
*  '$arrUrls键名' =
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部