Правильное приложение fread ()?

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

Я основал код так:

for ($i = 1; $i <= $num_chunks; $i++) {

$file = fopen($target_file.$i, 'rb');
$buff = fread($file, 2097152);
fclose($file);

$final = fopen($target_file, 'ab');
$write = fwrite($final, $buff);
fclose($final);

unlink($target_file.$i);
}

Видимо, значение 2097152 не имеет значения, по крайней мере для меня. Я прочитал php документы, но не мог понять слишком много. Может ли кто-нибудь объяснить мне, как я должен выбрать этот второй параметр Fread? И как это работает?

0

Решение

Второй параметр — это объем данных для чтения, так как при чтении этого в одном блоке вы должны быть уверены, что этого достаточно для обработки любого фрагмента. Значение, которое вы установили, составляет 2 МБ, что может быть достаточно, но вы можете изменить код так, чтобы он читал его небольшими порциями и циклически, пока ввод полностью не будет прочитан.

Я также изменил его, чтобы открыть выходной файл один раз и просто написать содержимое по мере продвижения …

$final = fopen($target_file, 'wb');   // Open for write and start from beginning of file
for ($i = 1; $i <= $num_chunks; $i++) {
$file = fopen($target_file.$i, 'rb');
while($buff = fread($file, 4096))  {
fwrite($final, $buff);
}
fclose($file);

unlink($target_file.$i);
}
fclose($final);
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector