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 相关文章推荐
我的论坛源代码(九)
Oct 09 PHP
PHP文件下载类
Dec 06 PHP
php遍历目录viewDir函数
Dec 15 PHP
PHP判断远程url是否有效的几种方法小结
Oct 08 PHP
php分页示例分享
Apr 30 PHP
PHP CodeIgniter框架的工作原理研究
Mar 30 PHP
Yii实现简单分页的方法
Apr 29 PHP
thinkPHP5.0框架URL访问方法详解
Mar 18 PHP
Laravel中的chunk组块结果集处理与注意问题
Aug 15 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 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
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
php编写批量生成不重复的卡号密码代码
2015/05/14 PHP
php生成curl命令行的方法
2015/12/14 PHP
ThinkPHP5&5.1框架关联模型分页操作示例
2019/08/03 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
编写Js代码要注意的几条规则
2010/09/10 Javascript
IE6下通过a标签点击切换图片的问题
2010/11/14 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
2013/12/04 Javascript
js分页工具实例
2015/01/28 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
chrome调试javascript详解
2015/10/21 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
对vue事件的延迟执行实例讲解
2018/08/28 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
JavaScript类型相关的常用操作总结
2019/02/14 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
Python中使用Queue和Condition进行线程同步的方法
2016/01/19 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
python获取本机所有IP地址的方法
2018/12/26 Python
python自带tkinter库实现棋盘覆盖图形界面
2019/07/17 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
Python作用域与名字空间原理详解
2020/03/21 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
五个2015 年最佳HTML5 框架
2015/11/11 HTML / CSS
FC-Moto西班牙:摩托车手最大的购物场所之一
2019/04/11 全球购物
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
教师实习自我鉴定
2013/12/11 职场文书
《童年的发现》教学反思
2014/02/14 职场文书
设备管理实施方案
2014/05/31 职场文书
2014年医院个人工作总结
2014/12/09 职场文书
工作服管理制度范本
2015/08/06 职场文书