How to decompress tar.gz format files with PHP_php tips

WBOY
Release: 2016-05-16 19:58:33
Original
1322 people have browsed it

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);

Copy after login

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

Copy after login

②、

/**
原理:tar压缩包前512字节有自己的固定格式,根据这512个字节可以获取压缩包的文件名,大小等信息
在配合 gzopen,gzread 便可以解压gz格式
 */
$tar_object = new Archive_Tar("song.tar.gz");
$tar_object->extract('c:/tmp', true);

Copy after login

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";

Copy after login

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.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template