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 文件缓存的性能测试
Apr 25 PHP
封装ThinkPHP的一个文件上传方法实例
Oct 31 PHP
PHP遍历数组的三种方法及效率对比分析
Feb 12 PHP
PHP实现WebService的简单示例和实现步骤
Mar 27 PHP
PHP自动生成表单代码分享
Jun 19 PHP
php获取远程文件内容的函数
Nov 02 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
PHP中error_reporting函数用法详细介绍
Jun 11 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
php微信公众号开发之关键词回复
Oct 20 PHP
PHP implode()函数用法讲解
Mar 08 PHP
thinkphp5框架API token身份验证功能示例
May 21 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 __autoload函数(自动载入类文件)的使用方法
2012/02/04 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
总结一些PHP中好用但又容易忽略的小知识
2017/06/02 PHP
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
2013/04/02 Javascript
script标签属性用type还是language
2015/01/21 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
2015/11/17 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
ASP.NET jquery ajax传递参数的实例
2016/11/02 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
React实现点击删除列表中对应项
2017/01/10 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
js实现AI五子棋人机大战
2020/05/28 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
Python入门教程之运算符与控制流
2016/08/17 Python
Python实现破解12306图片验证码的方法分析
2017/12/29 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
WxPython实现无边框界面
2019/11/18 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
python中pickle模块浅析
2020/12/29 Python
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
2014年乡镇植树节活动方案
2014/02/28 职场文书
感恩教育活动总结
2014/05/05 职场文书
房产授权委托书范本
2014/09/22 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
董事长助理岗位职责
2015/02/11 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
灵能百分百第三季什么时候来?
2022/03/15 日漫