Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ответ 001 на задачу N 13
 
 автор: SoftTime   (20.03.2006 в 16:26)   письмо автору
 
 

Ответ 001 на задачу N 13.
С условиями задачи можно ознакомится по ссылке.
<?
function GetFileSize($host$patch$port="80")
{
    
$fp fsockopen($host$port$errno$errstr30);
    if (!
$fp)
    {
        return 
"Ошибка: $errstr ($errno)";
    } 
    else 
    {
        
# Запрос 
        
$headers "GET $patch HTTP/1.1\r\n"
        
$headers .= "Host: $host \r\n"
        
$headers .= "Connection: Close\r\n\r\n";  
        
fwrite($fp$headers);

        
# Ответ    
        
while (!feof($fp)) 
        { 
            
$line fgets($fp1024); 
            
// Ищем строку содержащую размер файла
            
preg_match("|Content-Length: ([\d\w]+)|i",$line,$out); 
            if(!empty(
$out[1])) 
            { 
                
$filesize $out['1']; 
                break; 
            } 
        }

        if(empty(
$filesize))
            return 
"Размер файла не определен";
        else
            return 
"Размер файла $filesize байт";
 
        
fclose($fp);
    }
}

# Вызываем функцию
print GetFileSize("www.softtime.ru""/files/whois.zip");
?>


http://www.softtime.ru/info/task.php?id_article=83

   
 
 автор: cheops   (27.03.2006 в 00:53)   письмо автору
 
   для: SoftTime   (20.03.2006 в 16:26)
 

Душевно, добротно, работает. Только при загрузке заголовков, лучше ориентироваться на лишний перевод строки между заголовками телом ответа, а не на конец файла, иначе если сервер не пошлёт HTTP-заголовок Content-Length, функция загрузит весь файл.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования