Потеря информации fopen() - fread()

insidex

флихтэръер
Потеря информации fopen() - fread()

Уважаемые программисты,

Столкнулся с одной неприятной проблемой.
Использую fopen открываю страничку в интернете,а дальше блоками
читаю ее содержимое ...ну и обрабатываю ее на свое усмотрение.

Собственно вот конструкция:
PHP:
$url = fopen("http://rapidshare.be", "r");

 while(!feof($url)) //получаем блоками содержимое html
 {
 $st=fread($url,"60000"); 
 echo $st;
 }
Значит,если прогонять эту конструкцию несколько раз, то периодически будет "теряться" один или два последних блока!
В общем в тупике,помогите плиз.
 

white phoenix

Новичок
PHP:
$fp = fopen('http://rapidshare.be','r');
while ($fp and !feof($fp))
{
 $buf = fread($fp,1024);
 echo $buf;
}
fclose($fp);
А вот так? fread вторым аргументом принимает int, а не string. Потоки нужно закрывать.
> "теряться"
Что возвращает fread?
 

insidex

флихтэръер
Поток то я закрыл,здесь просто забыл написать)

Автор оригинала: white phoenix
PHP:
$fp = fopen('http://rapidshare.be','r');
while ($fp and !feof($fp))
{
 $buf = fread($fp,1024);
 echo $buf;
}
fclose($fp);
А вот так? fread вторым аргументом принимает int, а не string.
Нет ничего не изменилось,только в твоем примере число блоков возросло в ~10 раз.

> "теряться"
Что возвращает fread?
Mmm... fread выдает обрезанный контент странички,может нужно просить хостера,чтобы max_execution_time увеличил?
 

insidex

флихтэръер
К сожалению,ничего не могу сказать по поводу ошибок,ибо хостер ,за ногу его, в "целях безопасности"
поставил error_reporting(0),

Проверил только сейчас в локалке,с модема(!),и то целиком распечатывает страницу.

Вообщем не знаю,каким рачком админ php устанавливал :(
 

Myst

Новичок
Незнаю насчет что там у хостера , но я заметил такую вещь может и у меня криво работает пхп , во всяком случае с удаленных сайтов фукция fopen() тоже работает некоректно , тоесть не загружает полность файлы , а только некоторую часть , файлы даже размером в 5-10кб , если же я пробую со своего сайта (на одном компе там где и пхп) прочитать , скачать файлы етой функцией то все происходит прекрасно все читает , все записывает как надо , вот такие наблюдения были.

Насчет без проблемного скачивания файлов воспользовался функцией file-get-contents , загружает без проблем , по умолчанию для етой функции таймаут стоит 30 сек думаю етого вполне достаточно для любого конекта.
 
Сверху