b374k
m1n1 1.01
Apache
Linux webd001.cluster107.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
uid=2234(oyaide) gid=100(users) groups=100(users)
server ip : 213.186.33.18 | your ip : 216.73.216.136
safemode OFF
 >  / home / oyaide / www / moycompany.com / piwigo2 / plugins / GrumPluginClasses / classes /
Filename/home/oyaide/www/moycompany.com/piwigo2/plugins/GrumPluginClasses/classes/GPCCompress.class.inc.php
Size7.1 kb
Permissionrw----r--
Owneroyaide : users
Create time11-Mar-2016 09:47
Last modified04-Sep-2012 15:15
Last accessed04-Sep-2012 15:15
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/* -----------------------------------------------------------------------------
class name : GPCCompress
class version : 1.0.0
plugin version : 3.5.4
date : 2012-09-03
------------------------------------------------------------------------------
author: grum at piwigo.org
<< May the Little SpaceFrog be with you >>
------------------------------------------------------------------------------

:: HISTORY

| release | date |
| 1.0.0 | 2012/09/03 | * New class
| | |
| | |
| | |
| | |

------------------------------------------------------------------------------
no constructor, only static function are provided
- static function availableMethods
- static function gzip
- static function gunzip
- static function bzip2
- static function bunzip2
---------------------------------------------------------------------- */

include_once('GPCCore.class.inc.php');
@include_once(GPCCore::getPiwigoSystemPath().'/admin/include/pclzip.lib.php');

class GPCCompress {

/**
* return an array of available methods for compression
* current values are:
* 'zip' for zip files
* 'gz' for gzip files
* 'bz2' for bzip2 files
*
* @return Array
*/
static public function availableMethods()
{
$returned=array();

if(class_exists('PclZip')) $returned[]='zip';
if(function_exists('gzopen')) $returned[]='gz';
if(function_exists('bzopen')) $returned[]='bz2';

return($returned);
}

/**
* compress $fileName to $compressedFile in gz format
*
* @param String $fileName: source file to be compressed
* @param String $compressedFile: destination file compressed
* @param Integer $compressionLevel: level compression 0 (none) to 9 (high)
* @return Boolean: true if Ok, otherwise false
*/
static public function gzip($fileName, $compressedFile, $compressionLevel=6)
{
if(!function_exists('gzopen')) return(false);
if(!file_exists($fileName)) return(false);
if(file_exists($compressedFile)) unlink($compressedFile);
if(file_exists($compressedFile)) return(false);

$fHandleSrc=fopen($fileName, 'r');
if($fHandleSrc)
{
$fHandleDest=gzopen($compressedFile, 'w'.$compressionLevel);

if($fHandleDest)
{
while(!feof($fHandleSrc))
{
$fContent=fread($fHandleSrc, 1048576);
gzwrite($fHandleDest, $fContent);
}
gzclose($fHandleDest);
fclose($fHandleSrc);
return(true);
}
fclose($fHandleSrc);
}
return(false);
}


/**
* uncompress $fileName in gz format to $uncompressedFile
*
* @param String $fileName: source file be uncompressed (in gzformat)
* @param String $uncompressedFile: destination file uncompressed
* @return Boolean: true if Ok, otherwise false
*/
static public function gunzip($fileName, $uncompressedFile)
{
if(!function_exists('gzopen')) return(false);
if(!file_exists($fileName)) return(false);
if(file_exists($uncompressedFile)) unlink($uncompressedFile);
if(file_exists($uncompressedFile)) return(false);

$fHandleSrc=gzopen($fileName, 'r');
if($fHandleSrc)
{
$fHandleDest=fopen($uncompressedFile, 'w');

if($fHandleDest)
{
while(!feof($fHandleSrc))
{
$fContent=gzread($fHandleSrc, 8192);
fwrite($fHandleDest, $fContent);
}
fclose($fHandleDest);
gzclose($fHandleSrc);
return(true);
}
gzclose($fHandleSrc);
}
return(false);
}


/**
* compress $fileName to $compressedFile in bz2 format
*
* @param String $fileName: source file to be compressed
* @param String $compressedFile: destination file compressed
* @return Boolean: true if Ok, otherwise false
*/
static public function bzip2($fileName, $compressedFile)
{
if(!function_exists('bzopen')) return(false);
if(!file_exists($fileName)) return(false);
if(file_exists($compressedFile)) unlink($compressedFile);
if(file_exists($compressedFile)) return(false);

$fHandleSrc=fopen($fileName, 'r');
if($fHandleSrc)
{
$fHandleDest=bzopen($compressedFile, 'w');

if($fHandleDest)
{
while(!feof($fHandleSrc))
{
$fContent=fread($fHandleSrc, 8192);
bzwrite($fHandleDest, $fContent);
}
bzclose($fHandleDest);
fclose($fHandleSrc);
return(true);
}
fclose($fHandleSrc);
}
return(false);
}


/**
* uncompress $fileName in bz2 format to $uncompressedFile
*
* @param String $fileName: source file be uncompressed (in bz2 format)
* @param String $uncompressedFile: destination file uncompressed
* @return Boolean: true if Ok, otherwise false
*/
static public function bunzip2($fileName, $uncompressedFile)
{
if(!function_exists('bzopen')) return(false);
if(!file_exists($fileName)) return(false);
if(file_exists($uncompressedFile)) unlink($uncompressedFile);
if(file_exists($uncompressedFile)) return(false);

$fHandleSrc=bzopen($fileName, 'r');
if($fHandleSrc)
{
$fHandleDest=fopen($uncompressedFile, 'w');

if($fHandleDest)
{
while(!feof($fHandleSrc))
{
$fContent=bzread($fHandleSrc, 8192);
fwrite($fHandleDest, $fContent);
}
fclose($fHandleDest);
bzclose($fHandleSrc);
return(true);
}
bzclose($fHandleSrc);
}
return(false);
}


/**
* Encapsulate the PclZip class for a simpler useage
* compress $filesNames to $compressedFile in zip format
*
* @param Array $filesNames: source files to be compressed
* @param String $compressedFile: destination file compressed
* @param Integer $compressionLevel: level compression 0 (none) to 9 (high)
* @return Boolean: true if Ok, otherwise false
*/
static public function zip($filesNames, $compressedFile, $addedPath='', $removedPath='')
{
if(is_array($filesNames) and count($filesNames)==0) return(false);
if(!is_array($filesNames) and !file_exists($filesNames)) return(false);
if(file_exists($compressedFile)) unlink($compressedFile);
if(file_exists($compressedFile)) return(false);

if(!is_array($filesNames))
$filesNames=array($filesNames);

$files=array();
foreach($filesNames as $file)
{
if(file_exists($file)) $files[]=$file;
}

if(count($filesNames)==0) return(false);

$zipFile=new PclZip($compressedFile);
$result=$zipFile->create($filesNames, $addedPath, $removedPath);
if($result==0) return(false);
return(true);
}


/**
* Encapsulate the PclZip class for a simpler useage
* uncompress $compressedFile in zip format to $destination
*
* @param String $fileName: source file be uncompressed (in zip format)
* @param String $destination: destination file uncompressed
* @return Boolean: true if Ok, otherwise false
*/
static public function unzip($fileName, $destination)
{
if(!file_exists($fileName)) return(false);
$zipFile=new PclZip($fileName);

$result=$zipFile->extract($destination);
}

}


?>