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 相关文章推荐
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
Jan 15 PHP
php radio 单选框获取与保持值的实现代码
May 15 PHP
PHP开发的一些注意点总结
Oct 12 PHP
解析php中反射的应用
Jun 18 PHP
Smarty局部缓存的几种方法简介
Jun 17 PHP
ThinkPHP有变量的where条件分页实例
Nov 03 PHP
php查看当前Session的ID实例
Mar 16 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 PHP
PHP页面间传递值和保持值的方法
Aug 24 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 PHP
THINKPHP截取中文字符串函数实例代码
Mar 20 PHP
php对微信支付回调处理的方法
Aug 23 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生成静态html文件的三种方法
2013/06/18 PHP
php 判断字符串中是否包含html标签
2014/02/17 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
js 鼠标拖动对象 可让任何div实现拖动效果
2009/11/09 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
js内置对象 学习笔记
2011/08/01 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
Javascript学习笔记之相等符号与严格相等符号
2014/11/23 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
jQuery响应滚动条事件功能示例
2017/10/14 jQuery
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
Koa代理Http请求的示例代码
2018/10/10 Javascript
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
简单介绍Python下自己编写web框架的一些要点
2015/04/29 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
2016/07/01 Python
Python实现读取并保存文件的类
2017/05/11 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
解决python3爬虫无法显示中文的问题
2018/04/12 Python
Python爬虫信息输入及页面的切换方法
2018/05/11 Python
Python3数据库操作包pymysql的操作方法
2018/07/16 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
英国在线玫瑰专家:InterRose
2019/12/01 全球购物
什么是URL
2015/12/13 面试题
研讨会主持词
2014/04/02 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
关于安全的演讲稿
2014/05/09 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
js之ajax文件上传
2021/05/13 Javascript