CURL 调试输出执行过程相关信息和错误信息

发布于 2018-07-16 14:49:21 字数 2575 浏览 4997 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

qq_aHcEbj

文章 0 评论 0

寄与心

文章 0 评论 0

13545243122

文章 0 评论 0

流星番茄

文章 0 评论 0

春庭雪

文章 0 评论 0

潮男不是我

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文