$pathdir='C:\XML'; // путь к папке, файлы которой будем архивировать
$nameArhive = 'test.zip'; //название архива
$zip = new ZipArchive; // класс для работы с архивами
if ($zip -> open($nameArhive, ZipArchive::CREATE) === TRUE){ // создаем архив, если все прошло удачно продолжаем
$dir = opendir($pathdir); // открываем папку с файлами
while( $file = readdir($dir)){ // перебираем все файлы из нашей папки
if (is_file($pathdir.$file)){ // проверяем файл ли мы взяли из папки
$zip -> addFile($pathdir.$file, $file); // и архивируем
//echo("Заархивирован: " . $pathdir.$file) , '<br/>';
}
}
$zip -> close(); // закрываем архив.
//echo 'Архив успешно создан';
}else{
die ('Произошла ошибка при создании архива');
}
пытаюсь добавить в архив папку XML, в которой лежат файлы xml , архив скачивается, но не открывается, //не удается открыть файл как архив
открываю его как текстовый там 2 варнинга
<b>Warning</b>: filesize() [<a href='function.filesize'>function.filesize</a>]: stat failed for test.zip in <b>C:\apache\localhost\www\save_xml.php</b> on line <b>113</b><br />
<br />
<b>Warning</b>: unlink(test.zip) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in <b>C:\apache\localhost\www\save_xml.php</b> on line <b>117</b><br />
не подскажите, что не так?
То есть после архивации мы высылаем HTTP-заголовки, сообщающие браузеру, что мы отдаём пользователю файл. У пользователя в этот момент открывается окно скачивания файла. После выдачи заголовков мы отправляем сам файл. Затем мы этот файл удаляем.
Воспользовался вашим методом, но скачанный архив не открывается, если открыть в как текстовый файл его, там 2 варнинга
b>Warning</b>: filesize() [<a href='function.filesize'>function.filesize</a>]: stat failed for test.zip in <b>C:\apache\localhost\www\save_xml.php</b> on line <b>113</b><br />
<b>Warning</b>: unlink(test.zip) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in <b>C:\apache\localhost\www\save_xml.php</b> on line <b>117</b><br />
не подскажите, с чем это связанно ?
DanJake из вашего каламбура я понял, что вам нужно отдать юзеру все xml которые будут созданы на сервере?!
Если да, то проще в zip-архив и на скачивание отдавать его. Т.к. клеить несколько xml в один имхо дурная затея.
Да, отдать все xml с сервера, а без архива никак?в этом то и проблема, я не хочу, что бы при отдаче их пользователю, их клеило в 1 файл, а передавалось таким же количеством.
P.S. и извините за каламбур)пытался объяснить как можно понятней, а получилось как всегда
Добрый день, возник вопрос,
есть html страница, на которой есть строка поиска, и кнопка поиск, она отсылает php скрипту результат, который ввели в строку, подключается к базе и по этому id ищет (в моем случае это ид заказов, на примере онлайн заказов в неком магазине) после этого, на страничке с результатом поиска, есть кнопка сохранить в XML, и у меня оно сохраняется корректно, даже если с одним id 2 заказа(разные даты, к примеру 2014 и 2015 года) сохраняет их на сервер(если заказа 2 и более то соответствующее количество файлов xml), само собой, но я хочу, что бы сохранялись на компьютере пользователя, делал я это, сохранив xml на сервере, а после этого, достаю его, если файл 1, то все отлично, но если заказа было 2, оно из двух файлов, которые на сервере, достает инфу, и сохраняет в 1 xml файл на компьютере, скажите, возможно, что бы сохраняло столько же файлов, сколько их на сервере?
в таком формате я сохраняю xml файл на сервер, имя файлы выходит order_id заказа(дата) дата для случаев, когда заказа 2 и более с одним ид
$doc = new DOMDocument("1.0");
$root = $doc->createElement("order");
$root = $doc->appendChild($root);