gzwrite

(PHP 4, PHP 5)

gzwriteБинарная запись в gz-файл

Описание

int gzwrite ( resource $zp , string $string [, int $length ] )

Записывает содержимое string в данный gz-файл.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

string

Записываемая строка.

length

Число записываемых байтов (до сжатия). Если указано, операция завершится после записи length байт или при достижении конца строки string.

Замечание:

Обратите внимание, что если параметр length задан, конфигурационный параметр magic_quotes_runtime будет проигнорирован и удаление слэшей из записываемой строки не будет выполнено.

Возвращаемые значения

Возвращает число действительно записанных байт (без учёта сжатия) в поток gz-файла.

Примеры

Пример #1 Пример использования gzwrite()

<?php
$string 
'Какие-то данные для сжатия';
$gz gzopen('somefile.gz','w9');
gzwrite($gz$string);
gzclose($gz);
?>

Смотрите также

  • gzread() - Бинарное чтение gz-файла
  • gzopen() - Открывает gz-файл

Коментарии

Автор:
This is a short example of use gzwrite function. 
<?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;
    }
?>

the function gzcompressfile() compress a file 'data.csv' to 'data.csv.gz'. the function return false if error, and the new file name if it's ok.
2003-08-13 07:30:22
http://php5.kiev.ua/manual/ru/function.gzwrite.html
How about this instead:
$s = file_get_contents('file.tar'); 
file_put_contents('file.tar.gz',gzencode($s,9));
2008-02-22 01:24:03
http://php5.kiev.ua/manual/ru/function.gzwrite.html
Автор:
katzlbtjunk's method is certainly shorter, but it is unusable for anything except small files.  It would try to load the whole file into memory, then create an entire compressed copy, and only then write it to disk.  The other method given below will not exhaust memory like that.
2008-03-27 14:34:41
http://php5.kiev.ua/manual/ru/function.gzwrite.html
This function add a line to a .gz compressed file

<?php
function AppendLineGz($file,$string) {
    if (
file_exists($file)) {
       
$lines gzfile($file);
       
$lines[count($lines)] = "$string\r\n";
       
$input=implode($lines);
    } else {
$input="$string\r\n";}
   
$gz gzopen($file,'w9');
   
gzwrite($gz$input);
   
gzclose($gz);   
}
?>
2009-02-03 12:37:19
http://php5.kiev.ua/manual/ru/function.gzwrite.html
gz compression is often used with tar archives. Building tar archives is quite easy. Here is a code snipplet which can be used for building tar archives before compressing them to tar.gz.

<?php

//\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
// Adds file header to the tar file, it is used before adding file content.
// f: file resource (provided by eg. fopen)
// phisfn: path to file
// archfn: path to file in archive, directory names must be followed by '/'
//\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
function TarAddHeader($f,$phisfn,$archfn)
{
   
$info=stat($phisfn);
   
$ouid=sprintf("%6s "decoct($info[4]));
   
$ogid=sprintf("%6s "decoct($info[5]));
   
$omode=sprintf("%6s "decoct(fileperms($phisfn)));
   
$omtime=sprintf("%11s"decoct(filemtime($phisfn)));
    if (@
is_dir($phisfn))
    {
         
$type="5";
         
$osize=sprintf("%11s "decoct(0));
    }
    else
    {
         
$type='';
         
$osize=sprintf("%11s "decoct(filesize($phisfn)));
         
clearstatcache();
    }
   
$dmajor '';
   
$dminor '';
   
$gname '';
   
$linkname '';
   
$magic '';
   
$prefix '';
   
$uname '';
   
$version '';
   
$chunkbeforeCS=pack("a100a8a8a8a12A12",$archfn$omode$ouid$ogid$osize$omtime);
   
$chunkafterCS=pack("a1a100a6a2a32a32a8a8a155a12"$type$linkname$magic$version$uname$gname$dmajor$dminor ,$prefix,'');

   
$checksum 0;
    for (
$i=0$i<148$i++) $checksum+=ord(substr($chunkbeforeCS,$i,1));
    for (
$i=148$i<156$i++) $checksum+=ord(' ');
    for (
$i=156$j=0$i<512$i++, $j++)    $checksum+=ord(substr($chunkafterCS,$j,1));

   
fwrite($f,$chunkbeforeCS,148);
   
$checksum=sprintf("%6s ",decoct($checksum));
   
$bdchecksum=pack("a8"$checksum);
   
fwrite($f,$bdchecksum,8);
   
fwrite($f,$chunkafterCS,356);
    return 
true;
}
//\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
// Writes file content to the tar file must be called after a TarAddHeader
// f:file resource provided by fopen
// phisfn: path to file
//\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
function TarWriteContents($f,$phisfn)
{
    if (@
is_dir($phisfn))
    {
        return;
    }
    else
    {
       
$size=filesize($phisfn);
       
$padding=$size 512 512-$size%512 0;
       
$f2=fopen($phisfn,"rb");
        while (!
feof($f2)) fwrite($f,fread($f2,1024*1024));
       
$pstr=sprintf("a%d",$padding);
       
fwrite($f,pack($pstr,''));
    }
}
//\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
// Adds 1024 byte footer at the end of the tar file
// f: file resource
//\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
function TarAddFooter($f)
{
   
fwrite($f,pack('a1024',''));
}

?>
2009-02-05 10:07:16
http://php5.kiev.ua/manual/ru/function.gzwrite.html
Автор:
Read the description of gzwrite() very carefully.  If the 'length' option is not specified, then the input data will have slashes stripped on systems where magic quotes are enabled.  This is important information to know when compressing files.

<?php
$data 
fread($fp5000);
gzwrite($fp2$datastrlen($data));
?>

Is the correct way to avoid issues with magic quotes.
2010-11-07 14:50:19
http://php5.kiev.ua/manual/ru/function.gzwrite.html

    Поддержать сайт на родительском проекте КГБ