Вы не зашли.
Главная » PHP » Помогите с чтением большых фалов
#1. TLENS Off (14)
Moderator
2009.12.29 16:04
Вот ситуация такова немогу обработать файл до конца
Код:
lt;?$fr=fopen('file1','r');$fp=fopen('file2','a');$i=0;while(!feof($fr) || $i==50) { ++$i; $f=fread($fr, 102400)//Обработка $f fputs($fp,$f); unset($f); }fclose($fr);fclose($fp);
Сервер обработает гдето 48 мб.
Вопрос как продолжить обработку при новом обновлении например:
fillesize('file1'); //=800mb а
filesize('file2'); //=48mb
Как начать обработку с filesize('file2') а не с начала?
Отредактировано TLENS (2009.12.29 16:04)
#2. Gemorroj Off (107)
Administrator
2009.12.29 16:04
сколько по времени занимает обработка? вероятно, дело не в расходе оперативной памяти, а превышении максимального отведенного времени на работу скрипта.
банально set_time_limit
#3. TLENS Off (14)
Moderator
2009.12.29 16:04
Да нет оперативку же сразу после записи чищу.
Грузит долго потом таймаут.
Док вот чего я и хочу чтобы обработать кусочками по 5 мб за одно выполнение.
Но fread() при новом выполнении начинает обрабатывать сначала.
Вопрос состоит в том можно ли указать фрейду с какого места начинать. например как в дозагрузке Рангес bites='.filesize('file2').'-'.filesize('file1');
ну если фрейд такого не умеет может какаято другая функция?
Отредактировано TLENS (2009.12.29 16:04)
#4. Gemorroj Off (107)
Administrator
2009.12.29 17:05
http://ru.php.net/manual/en/function.fseek.php
#5. TLENS Off (14)
Moderator
2009.12.29 17:05
Спасибо то что надо.
вот только там написано что функця не смещает если соединение открыто через http Почему так у меня сместило?
#6. Gemor
Гость
2009.12.29 18:06
Где такое написано?
#7. TLENS Off (14)
Moderator
2009.12.29 22:10
На php.su текстовый с текстовым файлом работаетпа вот бинарный не хочет отступить хоть и флажок стоит rb есть еще подобная функция?
#8. Gemor
Гость
2009.12.29 22:10
Доки читай на php.net а не php.su
флаг b требуется только на винде. код давай.
#9. TLENS Off (14)
Moderator
2009.12.29 22:10
Код:
span style="color: #0000BB"><?php$fn='http://f.spaces.ru/fff/3147604116015502/0/871924/spaces_ru_871924.mp3';$name=preg_replace('/.*\//si','',$fn);$potok=1000;$h=get_headers($fn);$getsize=(int)preg_replace('/.*Content-Length:.(.*?)\|.*/si','$1',implode('|',$h));$filesize=@filesize($name); $fr=fopen($fn,'rb'); $fp=fopen($name,'ab'); if($filesize<$getsize) { @fseek($fr, $filesize); while(!feof($fr)) { ++$i; $f=fread($fr, 1024); fputs($fp,$f); unset($f); if($i==$potok){break;} } } else { echo 'ok'; } fclose($fp); fclose($fr);echo filesize($name);echo'<META HTTP-EQUIV="REFRESH" CONTENT="0">';?>
#10. TLENS Off (14)
Moderator
2009.12.29 23:11
Почему ето mp3шку кусками зописало тоить з кусочка вклеяны в одно токо начало
Отредактировано TLENS (2009.12.30 04:04)
Страниц: 1 2 3 Все
Главная
WEB
PunBB Mod v0.6.2
0.014 s