Hey Matt,
Below is a cut down version of how I'm doing it. I lifted most of it right
out of the manual examples. It assumes a single entry in each compressed
file.
function uncompress($filepath, $new_filename, $compression)
{
if($compression == COMPRESSION_GZIP)
{
$zp = gzopen( $filepath, "r" );
$fp = fopen( $new_filename, "w");
if(! $fp )
{
return BDBERR_TITLE_GZ_FILE_COPY_FAILED;
}
$buffer = '';
if( $zp )
{
while(! gzeof($zp))
{
$buffer = gzgets ($zp, 4096);
if( $buffer === FALSE)
{
fclose($fp);
unlink($new_filename);
return BDBERR_TITLE_GZ_FILE_COPY_FAILED;
}
fputs($fp, $buffer);
}
gzclose( $zp );
fclose( $fp );
}
else
{
return BDBERR_TITLE_GZ_FILE_COPY_FAILED;
}
return SUCCESS;
}
else if($compression == COMPRESSION_BZIP2)
{
$bz_fp = fopen( $filepath, "r");
$bzipped_contents = fread ($bz_fp, filesize($filepath) );
fclose($bz_fp);
$uncompressed = bzdecompress( $bzipped_contents );
$fp = fopen( $new_filename, "w");
if(! $fp )
{
return BDBERR_TITLE_BZ2_FILE_COPY_FAILED;
}
if( ! fwrite($fp, $uncompressed) )
{
return BDBERR_TITLE_BZ2_FILE_COPY_FAILED;
}
fclose($fp);
return SUCCESS;
}
else if($compression == COMPRESSION_ZIP)
{
$zip = zip_open($filepath);
if ($zip)
{
$zip_entry = zip_read($zip);
if (zip_entry_open($zip, $zip_entry, "r"))
{
$unzipped_contents = zip_entry_read($zip_entry,
zip_entry_filesize($zip_entry));
zip_entry_close($zip_entry);
}
zip_close($zip);
$fp = fopen( $new_filename, "w");
if(! $fp )
{
return BDBERR_TITLE_ZIP_FILE_COPY_FAILED;
}
if( ! fwrite($fp, $unzipped_contents) )
{
return BDBERR_TITLE_ZIP_FILE_COPY_FAILED;
}
fclose($fp);
}
else
{
return BDBERR_TITLE_ZIP_FILE_COPY_FAILED;
}
}
else
{
return BDBERR_UNKNOWN_COMPRESSION_METHOD;
}
}
-----Original Message-----
From: Matt Palermo [mailto:[EMAIL PROTECTED]
Sent: Monday, August 04, 2003 7:33 PM
To: [EMAIL PROTECTED]
Subject: [PHP] Extracting Compressed Files
Does anyone know of easy ways to be able to extract all
files/folders/subfolders from different types of compressed files (.zip,
.tar.gz, etc.)? If anyone could help me out with this, I would really
appreciate it.
Thanks,
Matt
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php