找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1152|回复: 0
打印 上一主题 下一主题

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

[复制链接]

2500

主题

2513

帖子

7520

积分

论坛元老

Rank: 8Rank: 8

积分
7520
跳转到指定楼层
楼主
发表于 2018-2-14 05:52:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            本文实例讲述了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,才能使用
实例代码如下:
[U]复制代码[/U] 代码如下:
运行结果如下:
[U]复制代码[/U] 代码如下: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: http://www.jb51.net/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] => http://www.jb51.net/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
)
判断远程文件是否存在代码如下:
[U]复制代码[/U] 代码如下://判断远程文件是否存在   
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])
排除重定向的实例代码如下:
[U]复制代码[/U] 代码如下:  
        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提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
  • 在php中判断一个请求是ajax请求还是普通请求的方法
  • PHP中如何判断AJAX提交的数据
  • 使用php get_headers 判断URL是否有效的解决办法
  • php中如何判断一个网页请求是ajax请求还是普通请求
  • php不允许用户提交空表单(php空值判断)
  • PHP判断是否有Get参数的方法
  • PHP简单获取及判断提交来源的方法
  • php判断是否为ajax请求的方法
  • PHP自定义函数判断是否为Get、Post及Ajax提交的方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端