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版
Oct 09 PHP
回答PHPCHINA上的几个问题:URL映射
Feb 14 PHP
php xml-rpc远程调用
Dec 19 PHP
PHP动态创建Web站点的方法
Aug 14 PHP
基于php缓存的详解
May 15 PHP
让codeigniter与swfupload整合的最佳解决方案
Jun 12 PHP
php CI框架插入一条或多条sql记录示例
Jul 29 PHP
jQuery Mobile + PHP实现文件上传
Dec 12 PHP
php+mysql实现无限分类实例详解
Jan 15 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
Dec 16 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
Jan 08 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
Jan 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 开发环境配置(Zend Studio)
2010/04/28 PHP
php excel类 phpExcel使用方法介绍
2010/08/21 PHP
php实现监听事件
2013/11/06 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
使用jquery自定义鼠标样式满足个性需求
2013/11/05 Javascript
jquery选择器使用详解
2014/04/08 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
Nodejs高扩展性的模板引擎 functmpl简介
2017/02/13 NodeJs
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
js module大战
2019/04/19 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
[56:48]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python web框架学习笔记
2016/05/03 Python
Python对List中的元素排序的方法
2018/04/01 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
2019/05/04 Python
python字典排序的方法
2019/10/12 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
基于Python 函数和方法的区别说明
2021/03/24 Python
校长先进事迹材料
2014/02/01 职场文书
大学生先进事迹材料
2014/02/16 职场文书
四年级评语大全
2014/04/21 职场文书
十佳中学生事迹材料
2014/06/02 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
钱学森观后感
2015/06/04 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
同事离别感言
2015/08/04 职场文书
基于Python实现流星雨效果的绘制
2022/03/18 Python