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之变量、常量学习笔记
Mar 27 PHP
PHP 遍历XP文件夹下所有文件
Nov 27 PHP
php MsSql server时遇到的中文编码问题
Jun 11 PHP
提高php运行速度的一些小技巧分享
Jul 03 PHP
php后台如何避免用户直接进入方法实例
Oct 15 PHP
PHP中上传多个文件的表单设计例子
Nov 19 PHP
dedecms集成财付通支付接口
Dec 28 PHP
PHP经典算法集锦【经典收藏】
Sep 14 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
Jun 02 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
May 28 PHP
详解使用php-cs-fixer格式化代码
Sep 16 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往windows中添加用户
2006/12/06 PHP
解析PHP多种序列化与反序列化的方法
2013/06/06 PHP
PHP可变函数的使用详解
2013/06/14 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
JavaScript 继承详解(四)
2009/07/13 Javascript
UI Events 用户界面事件
2012/06/27 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
Javascript动态创建div的方法
2015/02/09 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
jQuery UI实现动画效果代码分享
2018/08/19 jQuery
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
基于Nodejs的Tcp封包和解包的理解
2018/09/19 NodeJs
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
vue组件之间数据传递的方法实例分析
2019/02/12 Javascript
JavaScript多种滤镜算法实现代码实例
2019/12/10 Javascript
Python中的urllib模块使用详解
2015/07/07 Python
python中验证码连通域分割的方法详解
2018/06/04 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
2018/08/22 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
Django发送邮件功能实例详解
2019/09/02 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
橄榄树药房:OLIVEDA
2019/09/01 全球购物
Kiwi.com中国:找到特价机票并发现新目的地
2019/10/27 全球购物
如何写自我鉴定
2014/03/19 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
先进单位申报材料
2014/12/25 职场文书
社会实践活动总结
2015/02/05 职场文书
公司费用报销管理制度
2015/08/04 职场文书