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生成自己的LOG文件
Oct 09 PHP
PHP编程中字符串处理的5个技巧小结
Nov 13 PHP
几款免费开源的不用数据库的php的cms
Dec 19 PHP
php注销代码(session注销)
May 31 PHP
php中文验证码实现示例分享
Jan 12 PHP
简单分析ucenter 会员同步登录通信原理
Aug 25 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
Feb 23 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
May 28 PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 PHP
Yii框架实现多数据库配置和操作的方法
May 25 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 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
从手册去理解分析PHP session机制
2011/07/17 PHP
php牛逼的面试题分享
2013/01/18 PHP
php计算两个日期相差天数的方法
2015/03/14 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
javascritp实现input输入框相关限制用法
2007/06/29 Javascript
DOM下的节点属性和操作小结
2009/05/14 Javascript
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
javascript中typeof的使用示例
2013/12/19 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
javascript计时器编写过程与实现方法
2016/02/29 Javascript
浅谈angular懒加载的一些坑
2016/08/20 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
vue2.0 自定义日期时间过滤器
2017/06/07 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
2017/11/22 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
英国最大的在线时尚眼镜店:Eyewearbrands
2019/03/12 全球购物
异常和异常类的概念
2014/09/12 面试题
《狼和小羊》教学反思
2014/04/20 职场文书
社区禁毒工作方案
2014/06/02 职场文书
付款证明模板
2015/06/19 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
教你怎么用Python操作MySql数据库
2021/05/31 Python
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL
Python find()、rfind()方法及作用
2022/12/24 Python