gzwrite и имя файла.

Royal Flash

-=MaestrO=-
gzwrite и имя файла.

Вот, пример:
PHP:
<?php 
function gzcompressfile($source,$level=false){ 
   $dest=$source.'.gz'; 
   $mode='wb'.$level; 
   $error=false; 
   if($fp_out=gzopen($dest,$mode)){ 
       if($fp_in=fopen($source,'rb')){ 
           while(!feof($fp_in)) 
               gzwrite($fp_out,fread($fp_in,1024*512)); 
           fclose($fp_in); 
           } 
         else $error=true; 
       gzclose($fp_out); 
       } 
     else $error=true; 
   if($error) return false; 
     else return $dest; 
   } 
?>
Заархивировав файл myfile.css при помощи этой функции, возникает проблема в том, что записаный зип-файл получается с кривым названием: myfile.css.gz а не myfile.gz. Если в $dest задать имя ($dest='myfile.gz'), то получается архив с правильным названием, вот только фал, находящийся в архиве теряет свое расширение (в архиве лежит файл без расширения, "myfile")... Как заархивировать файл myfile.css в myfile.gz, записав в архив именно myfile.css, а не myfile?
 

kruglov

Новичок
Вообще, формат gz предназначен для архивирования только одного файла... Посмотрите в каком-нить блокноте, там в архиве вообще имя исходного файла хранится? А то стандарт gzip позволяет его и не хранить.
 

Royal Flash

-=MaestrO=-
kruglov
Проблема в том, что нужно хранить исходное имя файла не измененным в архиве, а точнее, его расширение. Иначе получается следующее: пользователь закачивает gz файл, открывает его в винде архиватором... а дальше, неизвестно, какой программой его смотреть, так как расширение файла проподает.

Каким образом можно заархивировать файл myfile.css в а архив myfile.gz, чтобы в этом архиве храгился файл myfile.css, а не myfile?
 

kruglov

Новичок
7-zip умеет.

А через php - не знаю... Может, через system запускать gzip?
 

Royal Flash

-=MaestrO=-
А можно ли просто создать переменную, в нее записать содержимое файла (фалы до 2 MB - грузить сервак, я думаю, не будут), потом это содержимое подвергнуть архивации, а уже потом записать в файл с нужным названием? Если да, то просьба, код в студию :) Ну, или хотябы чем можно заархивировать содержимое переменной... Хотя = лучше всетаки код :)
 
Сверху