PHP检测远端文件是否存在

简介:
Java代码   收藏代码
  1. <?php  
  2. $url = 'http://example.com';  
  3. $hander_array = get_headers ( $url );  
  4. if ($header_array [0] == 'HTTP/1.1 200 OK') {  
  5.     echo '文件存在';  
  6. else {  
  7.     echo '文件不存在';  
  8. }   

 简单解释一下上面的代码。get_headers的作用就是访问一个远程地址,把服务器发送的HTTP头以数组形式返回。而$header[0]则是服务器返回的状态码(如果不出意外的话状态码应该都是第一个返回的)。

要确定一个文件在远端服务器上存在,只需要确定访问这个文件返回的状态码是"HTTP/1.1 200 OK"就行了(当然你也可以判断如果状态码不是"HTTP/1.1 404 Not Found"的话则文件存在,不过总感觉不保险,毕竟还有其他的诸如301,400这类的状态码)。

获取三位HTTP响应码的例子:

Java代码   收藏代码
  1. <?php  
  2. function get_http_response_code($theURL) {  
  3.     $headers = get_headers($theURL);  
  4.     return substr($headers[0], 93);  
  5. }  
  6. ?>   

 排除重定向的例子:

Java代码   收藏代码
  1. <?php  
  2. /** 
  3.  * Fetches all the real headers sent by the server in response to a HTTP request without redirects 
  4.  * 获取不包含重定向的报头 
  5.  */  
  6.    
  7. function get_real_headers($url,$format=0,$follow_redirect=0) {  
  8.   if (!$follow_redirect) {  
  9.     //set new default options  
  10.     $opts = array('http' =>  
  11.         array('max_redirects'=>1,'ignore_errors'=>1)  
  12.     );  
  13.     stream_context_get_default($opts);  
  14.   }  
  15.   //get headers  
  16.     $headers=get_headers($url,$format);  
  17.     //restore default options  
  18.   if (isset($opts)) {  
  19.     $opts = array('http' =>  
  20.         array('max_redirects'=>20,'ignore_errors'=>0)  
  21.     );  
  22.     stream_context_get_default($opts);  
  23.   }  
  24.   //return  
  25.     return $headers;  
  26. }  
  27. ?>   
相关文章
|
1月前
thinkphp5.1隐藏index.php入口文件
thinkphp5.1隐藏index.php入口文件
30 0
thinkphp5.1隐藏index.php入口文件
|
3月前
|
网络协议 PHP
|
3月前
|
PHP 数据安全/隐私保护
php案例:判断这个文件是什么编程语言代码的文件(判断java或者php)
php案例:判断这个文件是什么编程语言代码的文件(判断java或者php)
php案例:判断这个文件是什么编程语言代码的文件(判断java或者php)