ZipArchive :: CREATE не работает

1

Я пытаюсь проверить функцию ZipArchive в своем приложении, и по какой-то причине я ничего не получаю.

Смотрите мой vardump

object(ZipArchive)#1 (5) { ["status"]=> int(0) ["statusSys"]=> int(0)
 ["numFiles"]=> int(0) ["filename"]=> string(31) 
"E:\xampp\htdocs\test\zipfile.zip" ["comment"]=> string(0) "" }

Мой PHP

$zip = new ZipArchive();
$zip->open('zipfile.zip', ZipArchive::CREATE);

if($zip === TRUE){

} else {
    var_dump($zip);
}

При проверке адресата я не получаю никакого zip файла, я также проверил, активировано ли расширение, и я могу подтвердить его.

  • 0
    Zip-файл записывается по вызову close() , а не по вызову open() .... поскольку вы не вызываете close() , он никогда не записывается
  • 0
    Спасибо за ответ @MarkBaker Правильно ли я сказал, что должен изменить open () на save ()? если это так, я только что попробовал это, и он получает ** все неопределенный метод ZipArchive :: save () **
Показать ещё 2 комментария
Теги:
ziparchive

1 ответ

1
Лучший ответ

Для меня оказалось, что все в порядке, но файл не был создан, пока я не добавил некоторый контент.

<?php
    $zf=__DIR__ . '\zipfile.zip';

    /* To create a simple zip archive */
    $zip = new ZipArchive;
    $res = $zip->open( $zf, ZipArchive::CREATE );

    if( $res === TRUE ){
        $zip->addFromString('test.txt', 'This is some dummy data - without one file this seems to fail');
        $zip->close();
    } else {
        var_dump( $zip );
    }


    /* One approach to zip a directory */       
    $dir=__DIR__;
    $files=glob( $dir . '\*.*' );

    $zip = new ZipArchive;
    $res = $zip->open( $zf, ZipArchive::CREATE );
    if( $res===true ){
        foreach( $files as $file )  $zip->addFile( $file, basename( $file ) );
        $zip->close();
    }
?>
  • 0
    Спасибо @ramraider Это именно то, что мне было нужно, просто из интереса, знаете ли вы, что добавить к этому коду для прямого сканирования и архивирования содержимого каталога?
  • 0
    @Wolrab - используйте методы addGlob () или addPattern () для создания целого каталога или набора файлов за один вызов
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню