CURL 调试输出执行过程相关信息和错误信息
CURL 是个神器,几乎能完成所有的网络请求,我们在日常的编程中也是经常使用,而且几乎所有的服务器都是开启了这个功能,所以我们有必要详细的了解下如何使用 CURL。
基本设置项
初始化创建一个新cURL句柄
$ch = curl_init();
设置cURL相关选项
curl_setopt($ch, CRULOPT_URL, 'https://www.wenjiangs.com');
设置curl_exec()获取信息以字符流的形式返回
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
告诉 www.wenjiangs.com 是 weibo 中的页面通过点击进入的
curl_setopt($ch, CURLOPT_REFERER, 'http://weibo.com/');
启用时会将头信息作为字符流输出
curl_setopt($ch, CURLOPT_HEADER, 1);
排除页面主题只返回头信息与CURLOPT_HEADER同时使用
curl_setopt($ch, CURLOPT_NOBODY, true);
跟随head头重定向去寻找页面
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
跟随重定向的次数为 5 次
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
使用用户代理访问xlyhw
$agent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 MicroMessenger/4.2.2';//echo $_SERVER[ 'HTTP_USER_AGENT' ] curl_setopt($ch, CURLOPT_USERAGENT, $agent);
抓取页面的等待时间为30秒
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
向目标服务器传递头部信息
$header_arr[] = 'Mime-version:1.0' ; $header_arr[] = 'Content-type:text/html;charset=utf-8' ; $header_arr[] = 'Accept-encoding:compress,gzip' ; curl_setopt($ch, CURLOPT_HTTPHEADER, $header_arr);
用户 https
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
使用 post 向目标站提交数据
curl_setopt($ch, CURLOPT_POST, true);
定义 post 的数据字符串
$data = 'username=administrator&password=admin@admin.com'; curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
目标站的端口
curl_setopt($ch, CURLOPT_PORT, '8080');
抓取 URL 的 HTML 内容
$output = curl_exec($ch);
关闭cURL句柄
curl_close($ch);
调试错误信息
//1.初始化 $ch = curl_init(); //2.设置选项,包括URL curl_setopt($ch, CURLOPT_URL, 'https://www.wenjiangs.com'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); //3.执行并获取HTML文档内容 $output = curl_exec($ch); //4.错误判断 if ($output === FALSE){ echo 'cURL Error:'.curl_error($ch); } //5.返回cURL执行过程中相关信息(方便调试和查错) $info = curl_getinfo($ch); curl_close($ch); echo $output;
利用 CURL 获取网络图片
$ch = curl_init();//初始化curl $fp = fopen('a.png','wb');//打开文件 curl_setopt($ch,CURLOPT_URL,'https://www.wenjiangs.com/images/logo.png');//图片url curl_setopt($ch,CURLOPT_FILE,$fp);//把图片数据放进文件 curl_setopt($ch,CURLOPT_HEADER,0);//是否输出页面内容 curl_setopt($ch,CURLOPT_TIMEOUT,60);//执行的时间限制 curl_exec($ch); $info = curl_getinfo($ch); echo '<pre>'; print_r($info); echo '</pre>'; curl_close($ch); fclose($fp);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论