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侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
Oct 15 PHP
PHP 写文本日志实现代码
May 18 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
May 14 PHP
详解php的魔术方法__get()和__set()使用介绍
Sep 19 PHP
php遍历目录与文件夹的多种方法详解
Nov 14 PHP
一个PHP二维数组排序的函数分享
Jan 17 PHP
推荐25款php中非常有用的类库
Sep 29 PHP
PHP异常处理浅析
May 12 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
Feb 25 PHP
PHP回调函数简单用法示例
May 08 PHP
php fread函数使用方法总结
May 28 PHP
php实现对短信验证码发送次数的限制实例讲解
Mar 04 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
PHP中的超全局变量
2006/10/09 PHP
php 抽象类的简单应用
2011/09/06 PHP
php数组一对一替换实现代码
2012/08/31 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
2013/06/17 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
简单理解PHP的面向对象编程方式
2016/05/17 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
D3.js实现饼状图的方法详解
2016/09/21 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
python函数参数*args**kwargs用法实例
2013/12/04 Python
用Python进行基础的函数式编程的教程
2015/03/31 Python
python在控制台输出进度条的方法
2015/06/20 Python
Python 类与元类的深度挖掘 II【经验】
2016/05/06 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
关于python中plt.hist参数的使用详解
2019/11/28 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
Farah官方网站:男士服装及配件
2019/11/01 全球购物
城市轨道交通工程职业规划书范文
2014/01/18 职场文书
有趣的广告词
2014/03/18 职场文书
法定代表人授权委托书
2014/04/04 职场文书
个人授权委托书
2014/09/15 职场文书
离职信范本
2015/06/23 职场文书
升职感谢领导的话语及升职感谢信
2019/06/24 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书
《艾尔登法环》发布最新「战技」宣传片
2022/04/03 其他游戏