使用php get_headers 判断URL是否有效的解决办法


Posted in PHP onApril 27, 2013

在php中判断一个文件或目录是否存在,大家通常都会想到is_file和file_exists两个函数。但这两个函数再判断一个远程url文件是否存在的问题上还是会存在这样那样的问题。这里作者将和大家分享一种利用php get_headers函数来判断远程url文件是有效否存在的办法。

关于php get_headers函数的作用及用法,可以参考本站文章:

php中get_headers函数的作用及用法的详细介绍

下面来具体说如何利用php get_headers却判断url的真实有效性。

通过该函数的介绍,我们可以知道对于这个函数简单的说就是它返回的是一个HTTP请求的头文件信息,信息格式基本如下:

(1)

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Sat, 29 May 2004 12:28:13 GMT
    [2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
    [4] => ETag: "3f80f-1b6-3e1cb03b"
    [5] => Accept-Ranges: bytes
    [6] => Content-Length: 438
    [7] => Connection: close
    [8] => Content-Type: text/html
)

(2)

Array
(
    [0] => HTTP/1.0 404 Not Found
    [1] => Date: Sat, 29 May 2004 12:28:13 GMT
    [2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
    [4] => ETag: "3f80f-1b6-3e1cb03b"
    [5] => Accept-Ranges: bytes
    [6] => Content-Length: 438
    [7] => Connection: close
    [8] => Content-Type: text/html
)

从以上两种情况可以很容易看出,如果判断该url是否有效存在肯定是通过数组中的第一个元素值来判断的。服务器返回 200 即文件正确返回的意思,服务器返回 404 即文件不存在,因此从这个地方就可以很容易的判断一个url的是否存在了。

(详细出处:PHP程序员笔记)

 

PHP 相关文章推荐
Windows中安装Apache2和PHP4权威指南
Nov 18 PHP
PHP调用Twitter的RSS的实现代码
Mar 10 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
May 18 PHP
PHP容易被忽略而出错陷阱 数字与字符串比较
Nov 10 PHP
php urlencode()与urldecode()函数字符编码原理详解
Dec 06 PHP
destoon二次开发入门示例
Jun 20 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
Jul 22 PHP
PHP模块memcached使用指南
Dec 08 PHP
PHP中curl_setopt函数用法实例分析
Apr 16 PHP
php实现在线通讯录功能(附源码)
May 13 PHP
php实现文件预览功能
May 23 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
php中serialize序列化与json性能测试的示例分析
Apr 27 #PHP
php gzip压缩输出的实现方法
Apr 27 #PHP
PHP字符串的编码问题的详细介绍
Apr 27 #PHP
php正则表达式使用的详细介绍
Apr 27 #PHP
基于PHP编程注意事项的小结
Apr 27 #PHP
php二维数组排序与默认自然排序的方法介绍
Apr 27 #PHP
使用Apache的htaccess防止图片被盗链的解决方法
Apr 27 #PHP
You might like
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
PHP将session信息存储到数据库的类实例
2015/03/04 PHP
PHP 验证登陆类分享
2015/03/13 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
通过javascript把图片转化为字符画
2013/10/24 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
2015/08/07 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
2016/01/26 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
vue中使用GraphQL的实例代码
2019/11/04 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
浅谈Python中的私有变量
2018/02/28 Python
从列表或字典创建Pandas的DataFrame对象的方法
2019/07/06 Python
python将数组n等分的实例
2019/12/02 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
巴西宠物商店:Cobasi
2019/04/19 全球购物
全球性的在线商店:Vogca
2019/05/10 全球购物
美赞臣新加坡官方旗舰店:Enfagrow新加坡
2019/05/15 全球购物
图书馆标语
2014/06/19 职场文书
杭白菊导游词
2015/02/10 职场文书
工商局个人工作总结
2015/03/03 职场文书
在职证明书模板
2015/06/15 职场文书
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL
Java完整实现记事本代码
2022/06/16 Java/Android