Heim >php教程 >php手册 >判断远程文件是否存在的php函数

判断远程文件是否存在的php函数

WBOY
WBOYOriginal
2016-06-21 09:06:531363Durchsuche

函数|是否存在

判断远程的文件是否存在。

/*
  函数: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("/200/", $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";

?>

 



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:使用PHP的Socket写的POP3类Nächster Artikel:用php5轻松解析xml