У меня есть папка, содержащая много файлов PDF. Я построил скрипт, который упаковывает эти pdf файлы в пакеты по 100 МБ каждый.
#!/usr/bin/php
<?php
$pathToFiles = "../pdffakturor_test/";
$maxFileSize = 100 * 1024 * 1024;
$counter = 1;
$currentsize = 0;
$created_at_datum = date("Ymd");
$created_at_clock = date("Hi");
$zip = new ZipArchive;
if($counter <= 10)
{
$counter = sprintf("%02s", $counter);
}
$zip->open('PROD_SE_C_S_E_'.$created_at_datum.'_'.$created_at_clock.$counter.'.zip', ZipArchive::CREATE);
if ($handle = opendir($pathToFiles))
{
while (false !== ($entry = readdir($handle)))
{
if (substr($entry, -4) == ".pdf")
{
$filesize = filesize($pathToFiles.$entry);
if($currentsize >= $maxFileSize)
{
$zip->close();
$zip = null;
$zip = new ZipArchive;
$currentsize = 0;
if($counter <= 10)
{
$counter = sprintf("%02s", $counter);
}
$zip->open('PROD_SE_C_S_E_'.$created_at_datum.'_'.$created_at_clock.$counter.'.zip', ZipArchive::CREATE);
$counter++;
}
$zip->addFile($pathToFiles.$entry, $entry);
$currentsize += $filesize;
}
}
closedir($handle);
}
?>
У меня проблема в том, что первая партия почтовых индексов становится 183mb, а остальные 91,6mb. Я не могу понять, почему первый становится 183mb?
Задача ещё не решена.
Других решений пока нет …