Вы должны были бы сделать это с помощью с помощью Ajax, т.е.
Сначала создайте файл, который вы можете позвонить, когда связь была нажата, на данном примере, назовем его так download.php
Затем в файле добавить вызов вашей функции ....
<?
// execute function to get files
$zip_file = create_zip();
// get the full path to zip file
$full_zip_path = '/path/to/zip/file'.$zip_file;
// You may need to do more here depending on how far your create zip function goes
// if you want it to force the download you can then do this
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header("Content-Type: octet/stream");
header("Content-Disposition: attachment; filename=".$zip_file.";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($full_zip_path));
readfile($full_zip_path);
exit();
?>
Затем добавить класс в теге, как таковой ...
<a href="<!--Run create_zip function-->" class="download-zip">Download all files</a>
Тогда вам нужен javascript, чтобы вызвать загрузку php-файла в фоновом режиме, в основном добавьте это где-нибудь в нижний колонтитул/заголовок (в зависимости от того, где ваши скрипты).
<script>
$(function() {
$("a.download-zip").click(function() {
window.location.href = "/path/to/php/file/download.php";
return false;
});
});
</script>
Это будет загружать файл в фоновом режиме, что, в свою очередь, приведет к загрузке созданного zip-файла. Некоторые из вышеперечисленных могут быть незначительными из-за того, что вы не видите, как далеко продвинулась ваша функция create_zip, но она должна установить вас на правильном пути.
Для этого вам необходимо использовать AJAX. – AmazingDreams
Непосредственно невозможно html запускает на вашем браузере браузер php работает на вашем сервере - вам нужно будет создать «страницу», которая будет генерировать zip. Вы можете использовать ajax для вызова этого за сценой, но так же хорошо вы можете использовать прямую ссылку с target = "_ blank" – drk