<?//获取文件大小function remote_filesize($url_file){ if (!remote_file_exists($url_file)) return false; $headInf = get_headers($url_file,1); return $headInf['Content-Length'];}//判断文件是否存在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); //fread replace fgets $first_header = fread($fp, 128); fclose($fp); if (trim($first_header) == "") return false; //check $url_file "Content-Location" if (!preg_match("/200/", $first_header) || preg_match("/Location:/", $first_header)) return false; return true;}echo remote_filesize("http://wlm212.bjphp1.qq1.cc/down/ee.exe");?>
試してみる
{
$fp = fsockopen($host, $port, $err_no, $err_str,30);
}catch(Exception $e)
{
}
追加例外処理を試してみましたが、やはり動作しません。
$fp = @fsockopen($host, $port, $err_no, $err_str,30);
エラーメッセージをマスクします (この関数は例外処理の前に生成されます)