The example in this article describes the method of decompressing tar.gz format files with PHP. Share it with everyone for your reference, the details are as follows:
1. Use PHP’s built-in compression and archiving extension (phar)
$phar = new PharData('song.tar.gz'); //路径 要解压的文件 是否覆盖 $phar->extractTo('c:/tmp', null, true);
2. First, you need to install the pear management tool
under linux
/usr/local/php/bin/pear install Archive_Tar
wamp does not install pear by default, go-pear.php is suitable for older versions, php5.3 needs to download go-pear.phar
Put the downloaded file into the php directory (any directory can be used), execute the php go-pear.phar command, and press enter according to the prompts
①、Installation
#这个类实际安装pear时默认就会安装 pear install archive_tar
②、
/** 原理:tar压缩包前512字节有自己的固定格式,根据这512个字节可以获取压缩包的文件名,大小等信息 在配合 gzopen,gzread 便可以解压gz格式 */ $tar_object = new Archive_Tar("song.tar.gz"); $tar_object->extract('c:/tmp', true);
3. PHP calls external commands to perform decompression
//必须等命令执行完成,脚本才会推出,popen命令并非异步去执行 error_reporting(E_ALL); ini_set("display_errors", 1); $handle = popen("tar -xzvf song.tar.gz 2>&1", 'r'); /* while(!feof($handle)) { set_time_limit(3); $buffer = fgets($handle); echo "$buffer\n"; ob_flush(); flush(); }*/ echo "start \n"; pclose($handle); echo "end \n";
Readers who are interested in more PHP-related content can check out the special topics of this site: "Summary of PHP Operation Zip File and Compression Techniques", "Introduction Tutorial on PHP Basic Syntax", "Summary of PHP Error and Exception Handling Methods" and "php Summary of commonly used functions and techniques》
I hope this article will be helpful to everyone in PHP programming.