Всем привет. Есть небольшой скрипт, который по идее должен пройтись по всем каталогам, архивировать и если все ок, удалить сами файлы. Проблема в том, что при выполнении $zip->open возвращается false.
Код:
<?php
$zip = new ZipArchive();
function glob_tree_search($path)
{
global $zip;
$out = '';
foreach(glob($path . '/*.txt', GLOB_BRACE) as $file)
{
$file = basename($file);
$file_arr = explode('-', $file);
if ("{$file_arr[0]}-{$file_arr[1]}" == date('Y-m')) continue;
if (is_resource($zip->open("{$path}/{$file_arr[0]}-{$file_arr[1]}.zip", ZipArchive::CREATE)))
{
if ($zip->addFile("{$path}/{$file}", $file))
{
unlink("{$path}/{$file}");
}
else
{
echo "Error ZIP (addFile): {$path}/{$file_arr[0]}-{$file_arr[1]}.zip<br>";
}
}
else
{
echo "Error ZIP (open): {$path}/{$file_arr[0]}-{$file_arr[1]}.zip<br>";
// exit;
}
}
foreach(glob($path . '/*', GLOB_ONLYDIR) as $file)
{
$out = array_merge($out, glob_tree_search($file));
}
return $out;
}
glob_tree_search('/files/txt');