feof на удаленном сервере...

DooM

Guest
feof на удаленном сервере...

Скачиваю файл следующим образом:
PHP:
<?php
$handle = fopen("http://www.example.com/file.exe", "rb");
$contents = '';
while (!feof($handle)) {
  $contents .= fread($handle, 1024);
}
fclose($handle);
?>
Дома на локалке на Виндах (через http://127.0.0.1/)все ок.
А вот на сервере где **ix FEOF не находится, и цикл зацикливается, скрипт скачивает файл, но умирает по тайм-ауту...
Как можно определить еще , что файл скачался?
 

SiMM

Новичок
Качать опередлённое в заголовках, полученных от сервера, число байт. И вообще, есть [m]file_get_contents[/m] и другие разные функции.
 

DooM

Guest
в моем случае (немного изменено) файл по мере скачивания записывается, а если использовать один из Ваших способов, то все будет единовременно скачиваться в строку., а если файл 200 Мб?? одна переменная на 200 Мб, что-ли? да хостер убъет за такое:)
 

neko

tеam neko
tony2001
и что будет если он прочтет килобайт пробелов за раз?
 

DooM

Guest
Вот что у меня в оригинале..:
PHP:
$handle = fopen($old, "rb");
	while (!feof($handle)) {
	       $contents = fread($handle, 1024);
	       Write_File($contents,$new);			}
fclose($handle);

function Write_File($content,$path)
	{
		$f = fopen($path,'ab');
		$fw = fwrite($f, $content, strlen($content));
		fclose($f);		
	}
На локалке_как часы.. на сервере зависает.
 

tony2001

TeaM PHPClub
neko
>и что будет если он прочтет килобайт пробелов за раз?
var_dump(" " == false); // что выведет?
для справки: это основы.
 

neko

tеam neko
действительно ступил

-~{}~ 09.01.05 00:10:

вообще прикольно
0 это false
00 это уже true
 

DooM

Guest
разобрался...
вопрос снят...
PHP:
if($contents=="")break;
супер рулит.. и не бъется...
 

neko

tеam neko
tony2001
таки ты неправ
до меня дошло наконец когда твой вариант работать небудет
 
Сверху