PHP使用get_headers函数判断远程文件是否存在的方法
《PHP实例:PHP使用get_headers函数判断远程文件是否存在的方法》要点: PHP实战本篇章节讲解PHP使用get_headers函数判断远程文件是否存在的办法.分享给大家供大家参考.具体实现办法如下: PHP实战以前讲过程关于php判断远程文件是否存在的文章都是利用fopen,sockt,curl函数来实现检查远程文件是否存在,下面我再介绍利用 get_headers来检查远程文件是否存在,感兴趣的朋友可以参考一下. PHP实战先来简单了解get_headers()函数 PHP实战get_headers() 返回一个数组m包含有服务器响应一个 HTTP 哀求所发送的标头. PHP实战get_headers:发送服务器响应HTTP哀求 PHP实战get_headers(字符串url[链接格式]) PHP实战get_headers()以数组的形式返回服务器HTTP哀求m如果执行失败,将返回FALSE和一个错误的水平E_WARNING, PHP实战可选参数设置为1,get_headers()能分析系统的响应速度和集数组中的键, PHP实战注意:使用该函数需要把 php.ini里面的allow_url_fopen = On,才能使用 PHP实战实例代码如下:
代码如下:
<?php
$url = ''; 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: ??? [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] => ??? [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实例:PHP使用get_headers函数判断远程文件是否存在的方法》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |