curl模拟浏览器请求
2018-06-22 05:33:44来源:未知 阅读 ()
1 自行封装一个curl模拟浏览器请求的函数,如下: 2 /** 3 * curl模拟浏览器请求 4 * @param unknown $url 请求的地址 5 * @param array $params 请求地址所需要的参数 6 * @param string $method 请求的类型 7 * @param array $headers http请求头 8 * @return string|mixed 9 */ 10 function curlRequest($url, array $params, $method='POST', array $headers=array()) 11 { 12 // 1.初始化一个curl会话资源 13 $ch = curl_init(); 14 15 // 2.设置curl会话的选项 16 curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); // 强制使用 HTTP/1.0 17 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); // 发起连接前等待超时的时间,如果设置为0,则无限等待 18 curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 设置curl允许执行的最长秒数 19 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 是否将curl_exec()获取的信息返回,而不是直接输出 20 curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); // 设置HTTP请求头中"Accept-Encoding: "的值 21 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // 启用时会将服务器返回的"Location: "放在header中递归的返回给服务器 22 curl_setopt($ch, CURLOPT_MAXREDIRS, 5); // 设置HTTP重定向的最大数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的 23 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 是否需要进行服务端的SSL证书验证 24 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 是否验证服务器SSL证书中的公用名 25 curl_setopt($ch, CURLOPT_HEADER, false); // 是否抓取头文件的信息 26 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // 设置HTTP请求头 27 curl_setopt($ch, CURLINFO_HEADER_OUT, true); 28 29 switch (strtoupper($method)) { 30 case 'POST': 31 curl_setopt($ch, CURLOPT_POST, true); 32 curl_setopt($ch, CURLOPT_POSTFIELDS, $params); 33 break; 34 35 case 'GET': 36 $url = "{$url}?" . http_build_query($params); 37 break; 38 39 case 'DELETE': 40 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE'); 41 $url = "{$url}?" . http_build_query($params); 42 break; 43 44 default: 45 return 'invalid request method'; 46 } 47 48 curl_setopt($ch, CURLOPT_URL, $url); // 设置需要请求的URL地址,也可以在 curl_init()函数中设置 49 50 // 3.执行curl会话 51 $response = curl_exec($ch); 52 53 // 4.关闭curl会话,释放资源 54 curl_close($ch); 55 56 return $response; 57 } 58 59 函数调用方式如下: 60 $url = 'http://demo.com/index.php'; 61 $params = array('id'=>1,'name'=>'jack'); 62 $res = curlRequest($url,$params); 63 echo $res;
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 分享PHP curl 并发最佳实践代码 2019-11-24
- 分享php中模拟POST传递数据的两种方法 2019-11-08
- PHP如何实现异步调用 2019-10-31
- 详解PHP CURL获取邮箱地址的方法 2019-10-28
- 详解php curl的基本操作方法 2019-10-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash