使用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服务器安装多套PHP的另类解决方案
Oct 09 PHP
php获取mysql版本的几种方法小结
Mar 25 PHP
PHP+MySQL 制作简单的留言本
Nov 02 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
Jul 01 PHP
域名和cookie问题(域名后缀)
Oct 10 PHP
Zend studio文件注释模板设置方法
Sep 29 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
Sep 12 PHP
php中实现记住密码下次自动登录的例子
Nov 06 PHP
php从memcache读取数据再批量写入mysql的方法
Dec 29 PHP
PHP全局变量与超级全局变量区别分析
Apr 01 PHP
php获取服务器操作系统相关信息的方法
Oct 08 PHP
PHP PDOStatement::closeCursor讲解
Jan 30 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
php和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
Smarty的配置与高级缓存技术分享
2012/06/05 PHP
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
Yii2实现ajax上传图片插件用法
2016/04/28 PHP
javascript 定义新对象方法
2010/02/20 Javascript
JsRender for object语法简介
2014/10/31 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
一个简单不报错的summernote 图片上传案例
2016/07/11 Javascript
AngularJS基础 ng-open 指令简单实例
2016/08/02 Javascript
javascript self对象使用详解
2016/10/18 Javascript
javascript操作cookie
2017/01/17 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
使用Python实现下载网易云音乐的高清MV
2015/03/16 Python
python导入时小括号大作用
2017/01/10 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
Python字节单位转换实例
2019/12/05 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
Get The Label中文官网:英国运动时尚购物平台
2017/04/19 全球购物
HTC VIVE美国官网:VR虚拟现实眼镜
2018/02/13 全球购物
工程师岗位职责
2013/11/08 职场文书
关于安全的广播稿
2014/10/23 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL