PHP: Из .txt в .gz на лету и скачать...
header("Content-Encoding: gzip");
ob_start(array('ob_gzhandler',9));
Note:
You cannot use both ob_gzhandler() and ini.zlib.output_compression. Also note that using ini.zlib.output_compression is preferred over ob_gzhandler().
===============================================
$contents = gzread ($zd, filesize($FileName));
gzclose ($zd);
читает из гзип-файла
===============================================
читай - Функции сжатия Zlib... Поддержка Zlib при стандартной сборке PHP отсутствует.
можно использовать, где число уровень компрессии -
header("Content-Encoding: gzip");
ob_start(array('ob_gzhandler',9));
Note:
You cannot use both ob_gzhandler() and ini.zlib.output_compression. Also note that using ini.zlib.output_compression is preferred over ob_gzhandler().
===============================================
$contents = gzread ($zd, filesize($FileName));
gzclose ($zd);
читает из гзип-файла
===============================================
читай - Функции сжатия Zlib... Поддержка Zlib при стандартной сборке PHP отсутствует.
Вот заголовки которыми я пользуюсь:
Header("Content-type: application/force-download");
Header("Content-Length: ".filesize($file_path));
Header("Content-Disposition: attachment; filename=$fname");
Вот заголовки которыми я пользуюсь:
Header("Content-type: application/force-download");
Header("Content-Length: ".filesize($file_path));
Header("Content-Disposition: attachment; filename=$fname");
Что-то туплю...
1) Открываю файл file.txt
2) Считываю его содержание в $content
3) Закрываю файл file.txt
Дальше - варианты
4) Создаю файл file.gz
5) Записываю туда $content
6) Закрываю файл file.gz
7) В броузер вывожу ссылку на file.gz
При таком раскладе файл создается на диске и его потом надо убирать либо unlink(), либо вручную.
Либо вот такой вариант
4) Сжимаю $content функцией gzcompress()
P( ... а дальше что?
Может, я неверно сформулировал вопрос? Мне нужно, чтобы файл НЕ СОЗДАВАЛСЯ! И еще: куда пристроить эти заголовки?
Сорри за тупизм.
$data = implode("", file(dirname(__FILE__)."/".$FileName));
$gzdata = gzencode($data, 9);
header("Content-Type: application/x-zip-compressed");
header("Content-Type: application/octet-stream");
header("Content-Type: application/force-download");
header("Content-Type: application/download");
header('Content-Disposition: attachment; filename="'.$FileName.'.zip"');
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".strlen($gzdata));
echo $gzdata;
так пойдет?
Не ставьте уровень компрессии - 9, максмум - 3, уровень сжатия почти не повышается, (обычно менее 1%) но вот нагрузка на сервер, еще как
И вот еще:
http://www.codenet.ru/webmast/php/Gzip-PHP-Apache.php