У меня есть определенный каталог, который может содержать zip
файлов.
Я бы хотел просмотреть каждый подэлемент моего каталога, чтобы проверить, является ли это почтовым индексом. И распакуйте это. Затем обработайте остальные файлы.
Я использую flysystem для работы с моими файлами.
Итак, я пошел на это
$contents = $this->manager->listContents('local://my_directory , true);
foreach ($contents as $file) {
if( $file['extension'] == 'zip')
//Unzip in same location
}
Проблема в том, что разархивированные файлы не находятся в цикле и, если файл zip, содержат другой zip. Второй никогда не будет разархивирован.
Вот я и подумал об этом
function loopAndUnzip(){
$contents = $this->manager->listContents('local_process://' . $dir['path'] , true);
foreach ($contents as $file) {
if( $file['extension'] == 'zip')
//Unzip and after call loopAndUnzip()
}
}
Но начальная функция никогда не будет завершена и будет вызываться снова и снова, если внутри zip есть zip.
Разве это не проблема производительности?
Как управлять такими вещами?