GreatWeb
Guest
Функция -> Размер файла + FTP
Написал функцию которая возвращает размер файла как на своем серваке, так и на чужом. С http ссылка все отлично, а с FTP непонятки. Посмотрите функцию, напимер $url="ftp://ftp7.de.nero.com/nero63120.exe";
Когда такой урл сервак просто висит, как при зацикливании В чем тут дело??? Я думаю с HEAD %s HTTP/1.0\r\nHost: %s\r\n\r\n все дело... что нужно посылать для FTP?
Написал функцию которая возвращает размер файла как на своем серваке, так и на чужом. С http ссылка все отлично, а с FTP непонятки. Посмотрите функцию, напимер $url="ftp://ftp7.de.nero.com/nero63120.exe";
Когда такой урл сервак просто висит, как при зацикливании В чем тут дело??? Я думаю с HEAD %s HTTP/1.0\r\nHost: %s\r\n\r\n все дело... что нужно посылать для FTP?
PHP:
function filesizekb($url)
{
$urlArray = @parse_url($url);
if (!$urlArray[port]) {
if ($urlArray[scheme] == 'http') $urlArray[port] = 80;
elseif ($urlArray[scheme] == 'https') $urlArray[port] = 443;
elseif ($urlArray[scheme] == 'ftp') $urlArray[port] = 21;
}
if (!$urlArray[path]) $urlArray[path] = '/';
$errno="";
$errstr="";
$fp = @fsockopen ($urlArray[host].'.', $urlArray[port], &$errno, &$errstr , 30);
if (!$fp)
return false;
$req=sprintf( "HEAD %s HTTP/1.0\r\nHost: %s\r\n\r\n", $urlArray[path], $urlArray[host]);
fputs( $fp, $req );
while(!feof($fp)) $x.=fgets($fp,128);
fclose($fp);
if (ereg("Content-Length: ([0-9]+)",$x,$size)) return $size[1];
return false;
}