predator
web designer
ZipArchive создаёт битые архивы
Всем привет.
проблема следующая. надо сделать архиватор папки в зип файл.
принципиально работает, но архив получается битый и при просмотре видны даже не все файлы, хотя ZipArchive говорит что все файлы добавились.
система:
PHP Version 5.2.8
Windows NT COOL-47195F70A4 5.1 build 2600
zip
Zip enabled
Extension Version $Id: php_zip.c,v 1.1.2.46 2008/11/12 17:50:37 felipe Exp $
Zip version 1.8.11
Libzip version 0.9.0
zlib
ZLib Support enabled
Stream Wrapper support compress.zlib://
Stream Filter support zlib.inflate, zlib.deflate
Compiled Version 1.2.3
Linked Version 1.2.3
Directive Local Value Master Value
zlib.output_compression On On
zlib.output_compression_level -1 -1
zlib.output_handler no value no value
код (например такой - хотя вариантов уже перепробовал массу):
пробовал и addFile тоже самое
проблема похоже в чём-то другом
файлов 15 штук в тестовом варианте - т.ч. проблема с файловым дескриптором тоже не подходит помоему
кто сталкивался с ZipArchive - помогите разобраться
Всем привет.
проблема следующая. надо сделать архиватор папки в зип файл.
принципиально работает, но архив получается битый и при просмотре видны даже не все файлы, хотя ZipArchive говорит что все файлы добавились.
система:
PHP Version 5.2.8
Windows NT COOL-47195F70A4 5.1 build 2600
zip
Zip enabled
Extension Version $Id: php_zip.c,v 1.1.2.46 2008/11/12 17:50:37 felipe Exp $
Zip version 1.8.11
Libzip version 0.9.0
zlib
ZLib Support enabled
Stream Wrapper support compress.zlib://
Stream Filter support zlib.inflate, zlib.deflate
Compiled Version 1.2.3
Linked Version 1.2.3
Directive Local Value Master Value
zlib.output_compression On On
zlib.output_compression_level -1 -1
zlib.output_handler no value no value
код (например такой - хотя вариантов уже перепробовал массу):
PHP:
error_reporting(E_ALL);
ini_set('display_errors', '1');
ini_set('max_execution_time', '5000');
// create object
$zip = new ZipArchive();
// open archive
if ($zip->open('dir1/my-archive.zip', ZIPARCHIVE::CREATE) !== TRUE) {
die ("Could not open archive");
}
// initialize an iterator
// pass it the directory to be processed
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("dir2/"));
// iterate over the directory
// add each file found to the archive
echo '<pre>';
foreach ($iterator as $key=>$value) {
echo "$key file in process \n";
$contents = file_get_contents( realpath($key) );
if ( $contents === false ) {
echo "$key file not added\n";
continue;
}
$zip->addFromString( str_replace('dir2','altmed',$key), $contents );
echo "$key file added\n";
}
echo '</pre>';
// close and save archive
$zip->close();
echo "Archive created successfully.";
exit;
проблема похоже в чём-то другом
файлов 15 штук в тестовом варианте - т.ч. проблема с файловым дескриптором тоже не подходит помоему
кто сталкивался с ZipArchive - помогите разобраться