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?;

$exits = remote_file_exists($str_url);

echo $exists ? "Exists" : "Not exists";

?>