php如何判断远程文件是否存在

Posted 服务器-老张

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php如何判断远程文件是否存在相关的知识,希望对你有一定的参考价值。

<?php

/* 
  函数:remote_file_exists 
  功能:判断远程文件是否存在 
  参数: $url_file -远程文件URL 
  返回:存在返回true,不存在或者其他原因返回false 
*/ 
function remote_file_exists($url_file){ 
       //检测输入 
       $url_file = trim($url_file); 
       if (empty($url_file)) { return false; } 
       $url_arr = parse_url($url_file); 
       if (!is_array($url_arr) || empty($url_arr)){return false; }

       //获取请求数据 
       $host = $url_arr[‘host‘]; 
       $path = $url_arr[‘path‘] ."?".$url_arr[‘query‘]; 
       $port = isset($url_arr[‘port‘]) ?$url_arr[‘port‘] : "80";

       //连接服务器 
       $fp = fsockopen($host, $port, $err_no, $err_str,30); 
       if (!$fp){ return false; }

       //构造请求协议 
       $request_str = "GET ".$path."HTTP/1.1\r\n"; 
    $request_str .= "Host:".$host."\r\n"; 
    $request_str .= "Connection:Close\r\n\r\n";

       //发送请求 
    fwrite($fp,$request_str); 
       $first_header = fgets($fp, 1024); 
    fclose($fp);

       //判断文件是否存在 
       if (trim($first_header) == ""){ return false;} 
       if (!preg_match("/2002881064151/", $first_header)){ 
              return false; 
       } 
       return true; 
}

?>


函数描述及例子

 

<? 
//测试代码 
$str_url = ‘http://www.phpx.com/viewarticle.php?id=119617‘; 
$exits = remote_file_exists($str_url); 
echo $exists ? "Exists" : "Not exists"; 
?>

 



































以上是关于php如何判断远程文件是否存在的主要内容,如果未能解决你的问题,请参考以下文章

PHP 判断远程文件是否存在

PHP判断远程图片或文件或url是否存在-180

判断远程主机文件是不是存在

如何使用 PHP 检查远程文件是不是存在?

如何使用 PHP 检查远程文件是不是存在?

用shell判断远程主机上是否存在某个文件