PHP获取访问页面HTTP状态码的实现代码


Posted in PHP onNovember 03, 2016

方法一

$header_info=get_headers('https://3water.com/');
echo $header_info[0];
//耗时 0.67~0.78

方法二

$ch = curl_init ( 'https://3water.com/' );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_exec ( $ch );
$httpcode = curl_getinfo ( $ch, CURLINFO_HTTP_CODE ); // 200
curl_close ( $ch );
echo $httpcode;
//耗时 0.84~0.94

方法三给curl设置一些参数,可以加快速度,代码来自网络

$curl = curl_init();
$url='https://3water.com/';
curl_setopt($curl, CURLOPT_URL, $url); //设置URL
curl_setopt($curl, CURLOPT_HEADER, 1); //获取Header
curl_setopt($curl,CURLOPT_NOBODY,true); //Body就不要了吧,我们只是需要Head
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //数据存到成字符串吧,别给我直接输出到屏幕了
curl_exec($curl); //开始执行啦~
$httpcode=curl_getinfo($curl,CURLINFO_HTTP_CODE); //我知道HTTPSTAT码哦~
curl_close($curl); //用完记得关掉他
echo $httpcode;
//耗时 0.45~0.53

代码四

核心代码:

/**
 * 获取远程URL的HTTP状态
 * 
 * @version 0.0.1
 * @Author Chenjl * 
 * @param string $url  远程URL
 * @param string $data  ture[返回HTTP状态数组] | false[返回状态数值]
 * 
 * @return mixed
 */
function getHeaders($url,$data=FALSE){
 $_headers = get_headers($url,1);
 if( !$data ){return $_headers;}
 $curl = curl_init(); 
 curl_setopt($curl,CURLOPT_URL,$url);//获取内容url 
 curl_setopt($curl,CURLOPT_HEADER,1);//获取http头信息 
 curl_setopt($curl,CURLOPT_NOBODY,1);//不返回html的body信息 
 curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//返回数据流,不直接输出 
 curl_setopt($curl,CURLOPT_TIMEOUT,30); //超时时长,单位秒 
 curl_exec($curl); 
 $rtn= curl_getinfo($curl,CURLINFO_HTTP_CODE); 
 curl_close($curl);
 return $rtn;
}

上面的代码,逐风已将两种获取方式进行一个整合,方便不同获取HTTP状态情景的需求;

返回结果:

# 调用案例1:getHeaders('https://3water.com\/\',true);
# 返回结果:200 // 直接返回HTTP状态码
 
# 调用案例2:getHeaders('https://3water.com/',false);
# 返回结果:
/*
array(10) { 
[0]=> 
string(15) "HTTP/1.1 200 OK" 
["Server"]=> 
string(5) "nginx" 
["Date"]=> 
string(29) "Mon, 04 Jul 2016 06:21:35 GMT" 
["Content-Type"]=> 
string(9) "text/html" 
["Content-Length"]=> 
string(5) "26898" 
["Last-Modified"]=> 
string(29) "Mon, 04 Jul 2016 06:16:00 GMT" 
["Connection"]=> 
string(5) "close" 
["Vary"]=> 
string(15) "Accept-Encoding" 
["ETag"]=> 
string(15) ""5779ff20-6912"" 
["Accept-Ranges"]=> 
string(5) "bytes" 
} 
*/

基本上就这些了,大家可以适当补充

PHP 相关文章推荐
PHP安全配置
Dec 06 PHP
PHP获取网卡地址的代码
Apr 09 PHP
php GD绘制24小时柱状图
Jun 28 PHP
php中存储用户ID和密码到mysql数据库的方法
Feb 06 PHP
php实现mysql封装类示例
May 07 PHP
WebQQ最新登陆协议的用法
Dec 22 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
Dec 09 PHP
PHP Laravel 上传图片、文件等类封装
Aug 16 PHP
Laravel程序架构设计思路之使用动作类
Jun 07 PHP
PHP使用函数用法详解
Sep 30 PHP
Thinkphp集成抖音SDK的实现方法
Apr 28 PHP
PHP之将POST数据转化为字符串的实现代码
Nov 03 #PHP
PHP读取文件的常见几种方法
Nov 03 #PHP
PHP自定义多进制的方法
Nov 03 #PHP
关于PHP中字符串与多进制转换函数的实例代码
Nov 03 #PHP
注释PHP和html混合代码的小技巧(分享)
Nov 03 #PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
Nov 03 #PHP
PHP 接入微信扫码支付总结(总结篇)
Nov 03 #PHP
You might like
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
PHP递归复制、移动目录的自定义函数分享
2014/11/18 PHP
php通过Chianz.com获取IP地址与地区的方法
2015/01/14 PHP
推荐十款免费 WordPress 插件
2015/03/24 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
常见JS效果之图片减速度滚动实现代码
2011/12/08 Javascript
jQuery.query.js 取参数的两点问题分析
2012/08/06 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
详解JavaScript的变量和数据类型
2015/11/27 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
2016/11/21 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
2017/06/13 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
vue源码解析之事件机制原理
2018/04/21 Javascript
在Vue中获取组件声明时的name属性方法
2018/09/12 Javascript
微信小程序自定义toast组件的方法详解【含动画】
2019/05/11 Javascript
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
[44:40]Serenity vs Pain 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python实现自动登录人人网并访问最近来访者实例
2014/09/26 Python
深入理解NumPy简明教程---数组1
2016/12/17 Python
不要用强制方法杀掉python线程
2017/02/26 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
2020/11/28 Python
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
西班牙美妆电商:Perfume’s Club(有中文站)
2018/08/08 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
毕业生自荐书
2014/02/03 职场文书
竞聘书格式及范文
2014/03/31 职场文书
运动会加油口号
2014/06/07 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
2016应届大学生自荐信模板
2016/01/28 职场文书