The example in this article describes how to decompress 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
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 files and compression techniques", "PHP basic syntax introductory tutorial", "Summary of PHP error and exception handling methods" and "Summary of common PHP functions and techniques"
I hope this article will be helpful to everyone in PHP programming.