Не создается архив zip

jMax

Новичок
Добрый день.
Пытаюсь создать zip-архив, используя самый популярный алгоритм на php, который первым находится в гугле.

PHP:
<?php
//папка в которой будет размещен архив
$archive_dir = "zip";
//папка с исходными файлами
$src_dir = "fff";
 
//создание zip архива
$zip = new ZipArchive();
//имя файла архива
$fileName = $archive_dir."backup_".date('j_m_Y_h_m_s').".zip";
if ($zip->open($fileName, ZIPARCHIVE::CREATE) !== true) {
    echo "Error while creating archive file";
    exit(1);
}
 
//добавляем файлы в архив все файлы из папки src_dir
$dirHandle = opendir($src_dir);
while (false !== ($file = readdir($dirHandle))) {
    $zip->addFile($src_dir.$file, $file);
}
//закрываем архив
$zip->close();
 
echo "Archive created\n";
 
exit(0);
Ошибок вообще никаких нет, но так же нет и архива. Archive created, но не криейтед...
Папка разрешена на изменение всем пользователям.
Дело происходит в виндовсе. На апаче 2.2.

PHP Version 5.3.3
Compiler MSVC6 (Visual C++ 6.0)

zip

Zip enabled
Extension Version $Id: php_zip.c 300470 2010-06-15 18:48:33Z pajoye $
Zip version 1.9.1
Libzip version 0.9.0


Есть идеи или, может, кто уже сталкивался?
 

jMax

Новичок
Изменил на
PHP:
//папка в которой будет размещен архив
$archive_dir = "zip/";
//папка с исходными файлами
$src_dir = "fff/";
В начало скрипта добавил

PHP:
ini_set('display_errors',1);
error_reporting(E_ALL);
Изменений нет...
 

WMix

герр M:)ller
Партнер клуба
а в виндах первые 2 файла тоже ".", ".." ?
 

jMax

Новичок
Теперь там Resource id #3, обход по файлам папки fff совершается замечательно, исключая, конечно, то, что нужна проверка на "." и "..". Интересно то, что архив должен был создаться даже если бы этого не происходило, потому что $zip->open($fileName, ZIPARCHIVE::CREATE) возвращает true, а не код ошибки, что значит, что он в пустом виде создан и лежит на диске, но его там нет....
 

jMax

Новичок
Всем спасибо, видимо правда из-за первых двух "." и ".." там у него либо адресация сбивалась либо что-то подобное происходило, но когда добавил проверку вроде все заработало. И да, вот еще - выяснил, что пустым zip архив быть не может, он просто пустой не создается, в винде уж по крайней мере точно )))

получилось

PHP:
<?php
//папка в которой будет размещен архив
$archive_dir = "zip/";
//папка с исходными файлами
$src_dir = "fff/";
 
//создание zip архива
$zip = new ZipArchive();
//имя файла архива
$fileName = $archive_dir."1.zip";
if ($zip->open($fileName, ZIPARCHIVE::CREATE) !== true) {
    echo "Error while creating archive file";
    exit(1);
}
 
//добавляем файлы в архив все файлы из папки src_dir
$dirHandle = opendir($src_dir);

while (false !== ($file = readdir($dirHandle))) {
	if($file!='.' && $file!='..') {
		$zip->addFile($src_dir.$file, $file);
	}
}

//закрываем архив
$zip->close();
 
echo "Archive created\n";
 
exit(0);
 
Сверху