Поэтому я пытаюсь создать Zip-файл из 2 строк. 1 – строка html, другая – обычный текст. Пока мне кажется, что текстовая строка работает правильно, но файл, который должен быть HTML, является просто пустым файлом. Любая идея почему?
$string1 = $_POST["html_string"]; $string2 = "Some data Some data Some data Some data Some data Some data"; $filename = "test.zip"; $zip = new ZipArchive(); if ($zip->open($filename, ZIPARCHIVE::CREATE)==TRUE) { $zip->addFromString("string1.html", $string1); $zip->addFromString("string2.txt", $string2); $zip->close(); } header("Content-Type: application/zip"); header("Content-Disposition: attachment; filename=\"".$filename."\""); //clearstatcache(); header("Content-Length: ".filesize($filename)); readfile($filename); unlink($filename);
Спасибо за любую помощь.
Попробовал заменить код
$string1 = $_POST["html_string"];
с
$string1 = '<html> <title></title> </html>';
и работал.
Вы уверены, что $ _POST ["html_string"] не пуст? Добавить var_dump ($ _ POST); чтобы увидеть, есть ли какие-то данные или обновить код, добавив чек в начале.
if (empty($_POST["html_string"])) { echo 'html_string is empty'; exit; }