From ff3ed99f17e6204cc4f6331830c53a084f385d9a Mon Sep 17 00:00:00 2001 From: marcel Date: Wed, 23 Aug 2006 23:11:49 +0200 Subject: Added bz2 compression support for Attic darcs-hash:20060823211149-9c1ae-569f295c33dc798a429a373f48cb09122334ea29.gz --- inc/io.php | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'inc/io.php') diff --git a/inc/io.php b/inc/io.php index a71162c11..f9fbbd103 100644 --- a/inc/io.php +++ b/inc/io.php @@ -91,6 +91,8 @@ function io_readFile($file,$clean=true){ if(@file_exists($file)){ if(substr($file,-3) == '.gz'){ $ret = join('',gzfile($file)); + }else if(substr($file,-4) == '.bz2'){ + $ret = bzfile($file); }else{ $ret = join('',file($file)); } @@ -101,6 +103,21 @@ function io_readFile($file,$clean=true){ return $ret; } } +/** +* Returns the content of a .bz2 compressed file as string +* @author marcel senf +*/ + +function bzfile($file){ + $bz = bzopen($file,"r"); + while (!feof($bz)){ + //8192 seems to be the maximum buffersize? + $str = $str . bzread($bz,8192); + } + bzclose($bz); + return $str; +} + /** * Used to write out a DokuWiki page to file, and send IO_WIKIPAGE_WRITE events. @@ -144,6 +161,7 @@ function _io_writeWikiPage_action($data) { * will be appended. * * Uses gzip if extension is .gz + * and bz2 if extension is .bz2 * * @author Andreas Gohr * @return bool true on success @@ -163,6 +181,14 @@ function io_saveFile($file,$content,$append=false){ } gzwrite($fh, $content); gzclose($fh); + }else if(substr($file,-4) == '.bz2'){ + $fh = @bzopen($file,$mode); + if(!$fh){ + msg("Writing $file failed", -1); + return false; + } + bzwrite($fh, $content); + bzclose($fh); }else{ $fh = @fopen($file,$mode); if(!$fh){ -- cgit v1.2.3