> 文章列表 > PHP判断远程文件是否存在

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(\"/200/\", $first_header)){
return false;
}
return true;
}
?>