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 "; 
    $request_str .= "Host:".$host." "; 
    $request_str .= "Connection:Close ";

       //发送请求 
    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"; 
?>

原文地址:https://www.cnblogs.com/cbryge/p/6108633.html