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 相关文章推荐
dede3.1分页文字采集过滤规则详说(图文教程)
Apr 03 PHP
PHP 中文处理技巧
Apr 25 PHP
php日期转时间戳,指定日期转换成时间戳
Jul 17 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
PHP中创建图像并绘制文字的例子
Nov 19 PHP
php实现两表合并成新表并且有序排列的方法
Dec 05 PHP
UTF-8正则表达式如何匹配汉字
Aug 03 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
Mar 16 PHP
php实现图片上传、剪切功能
May 07 PHP
用PHP写的一个冒泡排序法的函数简单实例
May 26 PHP
PHP编写文件多服务器同步程序
Jul 02 PHP
PHP中overload与override的区别
Feb 13 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 simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
PHP制作百度词典查词采集器
2015/01/29 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
2015/02/12 PHP
php简单实现无限分类树形列表的方法
2015/03/27 PHP
定义select的边框颜色
2008/04/28 Javascript
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
jquery EasyUI的formatter格式化函数代码
2011/01/12 Javascript
面向对象的Javascript之二(接口实现介绍)
2012/01/27 Javascript
JavaScript中的eval()函数详解
2013/08/22 Javascript
javascript设计模式之Adapter模式【适配器模式】实现方法示例
2017/01/13 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
2017/07/28 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
vc6编写python扩展的方法分享
2014/01/17 Python
python的类变量和成员变量用法实例教程
2014/08/25 Python
Python中比较特别的除法运算和幂运算介绍
2015/04/05 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
2016/06/13 Python
python编码总结(编码类型、格式、转码)
2016/07/01 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
python获取中文字符串长度的方法
2018/11/14 Python
Python切片操作去除字符串首尾的空格
2019/04/22 Python
python增加图像对比度的方法
2019/07/12 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
详解Python3中的 input() 函数
2020/03/18 Python
基于python实现复制文件并重命名
2020/09/16 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
加拿大约会网站:EliteSingles.ca
2018/01/12 全球购物
婚纱店策划方案
2014/05/22 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server
JavaScript实现栈结构详细过程
2021/12/06 Javascript