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 相关文章推荐
phpMyAdmin 链接表的附加功能尚未激活的问题
Aug 01 PHP
PHP中设置时区,记录日志文件的实现代码
Jan 07 PHP
phplot生成图片类用法详解
Jan 06 PHP
PHP中使用break跳出多重循环代码实例
Jan 21 PHP
Thinkphp调用Image类生成缩略图的方法
Mar 07 PHP
phpcms中的评论样式修改方法
Oct 21 PHP
PHP微信模板消息操作示例
Jun 29 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
PHP 传输会话curl函数的实例详解
Sep 12 PHP
PHP 计算两个特别大的整数实例代码
May 07 PHP
yii2 开发api接口时优雅的处理全局异常的方法
May 14 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
Aug 14 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超级全局变量
2010/01/26 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
解析PHP之提取多维数组指定列的方法
2017/01/03 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
jQuery 表单验证扩展代码(一)
2010/10/11 Javascript
jQuery :first选择器使用介绍
2013/08/09 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
jquery防止重复执行动画避免页面混乱
2014/04/22 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
在Vue.js中使用Mixins的方法
2017/09/12 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
2017/11/09 jQuery
全面了解JavaScript的作用域链
2019/04/03 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
Python命令行解析模块详解
2018/02/01 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
简单了解Python读取大文件代码实例
2019/12/18 Python
Django实现whoosh搜索引擎使用jieba分词
2020/04/08 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
Python如何读写字节数据
2020/08/05 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
俄罗斯运动、健康和美容产品在线商店:Lactomin.ru
2020/07/23 全球购物
2014年秘书工作总结
2014/11/25 职场文书
交警失职检讨书
2015/01/26 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
2015年项目工作总结
2015/04/29 职场文书
30岁前绝不能错过的10本书
2019/08/08 职场文书
spring boot中nativeQuery的用法
2021/07/26 Java/Android