Не могу зазиповать файл, прошу помощи.(( Делаю это под Denwer на Windows 7. В функции ничего странного нет: Код (PHP): function zip_file($filename, $zip_name) { if (!extension_loaded('zip')) { return "Дополнение zip не подключено."; } $zip = new ZipArchive; @unlink($zip_name); // для теста if ($zip->open($zip_name, ZIPARCHIVE::CREATE) !== true) { return "Не могу создать архив."; } if ($zip->addFile($filename) !== true) { return "Не могу добавить файл в архив."; } $zip->close(); } Вызываю функцию так: Код (PHP): $error = zip_file("Z:/home/myproject/www/123.txt", "Z:/home/myproject/www/123.zip"); echo $error; Архив создаётся каким-то кривым, весит 1кб. Если открыть его в WinRar, то я вижу как будто внутри лежит весь мой диск Z: (виртуальный диск Денвера). Это не нормально, потому что если создать пустой архив ВинРаром, то он при открытии и выглядит пустым. Если я открываю этот архив проводником, то внутри как будто пусто. В общем, метод addFile делает что-то не то, не могу понять почему.
Denwer замени на Open-Server.ru чтобы использовать более свежие версии php, mysql... https://secure.php.net/manual/ru/zip.examples.php Почему ООП подход и процедурный одновременно? Код (PHP): new ZipArchive zip_file()
Не процедурный. Я упростил код для примера. Более свежие версии мне не нужны, я поставил те что на работе на хостинге. И там тоже Windows 7, если что. Короче, что-то не так с слешами. Если файл положить в корень сайта и первым параметром передать "123.txt", то зипуется нормально. А если полный путь или релативный - получается кривой архив.
Можно посмотреть реальный код? Код (PHP): $zip->addFile('/path/to/index.txt', 'newname.txt'); Второй аргумент newname.txt без полного пути файла, указывай второй аргумент как относительный путь к файлу https://secure.php.net/manual/ru/ziparchive.addfile.php http://phpfaq.ru/newbie/paths