Как узнать размер файла на удаленном сервере?
Прислано AMD на Октябрь 04 2011 22:30:04

Первый способ: скачать и посмотреть. Второй способ описан здесь.

Вступление. Чтобы это сделать, надо открыть сокет (установить соединение с удаленным веб-сервером). Сокет - это файл, в который можно писать и читать. Далее в сокет (как в файл) надо написать заголовок (HEAD filename ...). После считать из сокета то, что нам напишут. Для начала выведите это на экран, чтобы было понятно, что именно вам возвращают. В ответе сервера, что мы считаем, будет много полезной информации - тип и ОС сервера, дата модификации и размер файла, другая информации. Все, что надо - выдрать из текста нужное число и вывести его на экран.

<?php

$fname='/path-to-file/big-big-big.mpg';
$fhost='www.super-mega.ru';

$x=0;
$fp = fsockopen($fhost, 80, &$errno, &$errstr, 30) or die("облом");

fputs($fp,"HEAD $fname HTTP/1.0\nHOST: $fhost\n\n");
while(!feof($fp)) $x.=fgets($fp,128);
fclose($fp);

if (ereg("Content-Length: ([0-9]+)",$x,$size)) echo "Размер файла $size[1] байт";
else echo "Определить невозможно";

?>


+++