PHP使用get_headers函数判断远程文件是否存在的方法


Posted in PHP onNovember 28, 2014

本文实例讲述了PHP使用get_headers函数判断远程文件是否存在的方法。分享给大家供大家参考。具体实现方法如下:

以前讲过程关于php判断远程文件是否存在的文章都是利用fopen,sockt,curl函数来实现检查远程文件是否存在,下面我再介绍利用 get_headers来检查远程文件是否存在,感兴趣的朋友可以参考一下。

先来简单了解get_headers()函数

get_headers() 返回一个数组m包含有服务器响应一个 HTTP 请求所发送的标头。

get_headers:发送服务器响应HTTP请求

get_headers(字符串url[链接格式])

get_headers()以数组的形式返回服务器HTTP请求m如果执行失败,将返回FALSE和一个错误的水平E_WARNING,

可选参数设置为1,get_headers()能分析系统的响应速度和集数组中的键,

注意:使用该函数需要把 php.ini里面的allow_url_fopen = On,才能使用

实例代码如下:

<?php 

$url = 'https://3water.com'; 

print_r(get_headers($url)); 

print_r(get_headers($url, 1)); 

?>

运行结果如下:
Array

(

    [0] => HTTP/1.1 200 OK

    [1] => Cache-Control: max-age=1800

    [2] => Content-Length: 54874

    [3] => Content-Type: text/html

    [4] => Content-Location: https://3water.com/index.htm

    [5] => Last-Modified: Fri, 28 Nov 2014 03:34:56 GMT

    [6] => Accept-Ranges: bytes

    [7] => ETag: "b66ba847bcad01:bc5"

    [8] => Server: Microsoft-IIS/6.0

    [9] => Date: Fri, 28 Nov 2014 03:37:34 GMT

    [10] => Connection: close

)

Array

(

    [0] => HTTP/1.1 200 OK

    [Cache-Control] => max-age=1800

    [Content-Length] => 54874

    [Content-Type] => text/html

    [Content-Location] => https://3water.com/index.htm

    [Last-Modified] => Fri, 28 Nov 2014 03:34:56 GMT

    [Accept-Ranges] => bytes

    [ETag] => "b66ba847bcad01:bc5"

    [Server] => Microsoft-IIS/6.0

    [Date] => Fri, 28 Nov 2014 03:37:35 GMT

    [Connection] => close

)

判断远程文件是否存在代码如下:
//判断远程文件是否存在   

function remote_file_exists($url) {   

        $executeTime = ini_get('max_execution_time');   

        ini_set('max_execution_time', 0);   

        $headers = @get_headers($url);   

        ini_set('max_execution_time', $executeTime);   

        if ($headers) {   

            $head = explode(' ', $headers[0]);   

            if ( !emptyempty($head[1]) && intval($head[1]) < 400) return true;   

        }   

        return false;   

}

排除重定向的实例代码如下:
<?php  

/** 

 * Fetches all the real headers sent by the server in response to a HTTP request without redirects 

 * 获取不包含重定向的报头 

 */  

     

function get_real_headers($url,$format=0,$follow_redirect=0) {  

  if (!$follow_redirect) {  

    //set new default options  

    $opts = array('http' =>  

        array('max_redirects'=>1,'ignore_errors'=>1)  

    );  

    stream_context_get_default($opts);  

  }  

  //get headers  

    $headers=get_headers($url,$format);  

    //restore default options  

  if (isset($opts)) {  

    $opts = array('http' =>  

        array('max_redirects'=>20,'ignore_errors'=>0)  

    );

    stream_context_get_default($opts);  

  }  

  //return  

    return $headers;  

}  

?>

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP生成html分页列表的代码
Mar 18 PHP
PHP 全角转半角实现代码
May 16 PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
Apr 22 PHP
codeigniter自带数据库类使用方法说明
Mar 25 PHP
thinkphp缓存技术详解
Dec 09 PHP
Yii学习总结之数据访问对象 (DAO)
Feb 22 PHP
twig模板获取全局变量的方法
Feb 05 PHP
[原创]php简单隔行变色功能实现代码
Jul 09 PHP
ThinkPHP中create()方法自动验证表单信息
Apr 28 PHP
什么是PHP7中的孤儿进程与僵尸进程
Apr 14 PHP
php web环境和命令行环境下查找php.ini的位置
Jul 17 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 PHP
php的mssql数据库连接类实例
Nov 28 #PHP
smarty中post用法实例
Nov 28 #PHP
smarty简单入门实例
Nov 28 #PHP
php最简单的删除目录与文件实现方法
Nov 28 #PHP
php查找指定目录下指定大小文件的方法
Nov 28 #PHP
thinkphp四种url访问方式详解
Nov 28 #PHP
thinkphp数据查询和遍历数组实例
Nov 28 #PHP
You might like
人大复印资料处理程序_输入篇
2006/10/09 PHP
mysql 搜索之简单应用
2007/04/27 PHP
php下实现伪 url 的超简单方法[转]
2007/09/24 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
2010/07/04 PHP
PHP对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
PHP5.3与5.5废弃与过期函数整理汇总
2014/07/10 PHP
php读取文件内容的方法汇总
2015/01/24 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
js 小数取整的函数
2010/05/10 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
JQuery 选择器、过滤器介绍
2011/02/14 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
2013/08/28 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
2014/05/11 Javascript
同步文本框内容JS代码实现
2016/08/04 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
详解vue axios中文文档
2017/09/12 Javascript
vue-ajax小封装实例
2017/09/18 Javascript
Angular4绑定html内容出现警告的处理方法
2017/11/03 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
python实现最小二乘法线性拟合
2019/07/19 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
2019/10/17 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
HTML5标签使用方法详解
2015/11/27 HTML / CSS
自荐信包含哪些内容
2013/10/30 职场文书
创业计划书——互联网商机
2014/01/12 职场文书
实习指导老师评语
2014/04/26 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
大学拉赞助协议书范文
2014/09/26 职场文书
2015年仓库工作总结
2015/04/09 职场文书
门球健将观后感
2015/06/16 职场文书
学校食堂管理制度
2015/08/04 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB