PHP解压tar.gz格式文件的方法


Posted in PHP onFebruary 14, 2016

本文实例讲述了PHP解压tar.gz格式文件的方法。分享给大家供大家参考,具体如下:

1、运用php自带压缩与归档扩展(phar)

$phar = new PharData('song.tar.gz');
//路径 要解压的文件 是否覆盖
$phar->extractTo('c:/tmp', null, true);

2、首先需要安装pear类管理工具

linux下

/usr/local/php/bin/pear install Archive_Tar

wamp默认没有安装pear,  go-pear.php  适合旧版本的 , php5.3 需要 下载 go-pear.phar PHP解压tar.gz格式文件的方法

将下载的 文件放到 php目录下(任意目录下都可以) 执行 php go-pear.phar 命令,根据提示按enter即可

①、安装

#这个类实际安装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调用外部命令来执行解压

//必须等命令执行完成,脚本才会推出,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";

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP HTML代码串截取代码
Dec 29 PHP
Apache服务器无法使用的解决方法
May 08 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
May 10 PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
Jun 22 PHP
PHP使用in_array函数检查数组中是否存在某个值
Mar 25 PHP
php简单创建zip压缩文件的方法
Apr 30 PHP
Zend Framework上传文件重命名的实现方法
Nov 25 PHP
PHP获取指定日期是星期几的实现方法
Nov 30 PHP
php使用curl模拟多线程实现批处理功能示例
Jul 25 PHP
Laravel 自动生成验证的实例讲解:login / logout
Oct 14 PHP
Thinkphp页面跳转设置跳转等待时间的操作
Oct 16 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
Dec 13 PHP
最新版本PHP 7 vs HHVM 多角度比较
Feb 14 #PHP
PHP使用socket发送HTTP请求的方法
Feb 14 #PHP
PHP闭包函数详解
Feb 13 #PHP
php设计模式之委托模式
Feb 13 #PHP
PHP常用设计模式之委托设计模式
Feb 13 #PHP
php判断邮箱地址是否存在的方法
Feb 13 #PHP
php打包网站并在线压缩为zip
Feb 13 #PHP
You might like
php开发环境配置记录
2011/01/14 PHP
ThinkPHP验证码和分页实例教程
2014/08/22 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
JS实现的另类手风琴效果网页内容切换代码
2015/09/08 Javascript
JavaScript操作URL的相关内容集锦
2015/10/29 Javascript
JavaScript学习小结之使用canvas画“哆啦A梦”时钟
2016/07/24 Javascript
浅谈JavaScript 中有关时间对象的方法
2016/08/15 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
2018/05/15 NodeJs
理理Vue细节(推荐)
2019/04/16 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
初步剖析C语言编程中的结构体
2016/01/16 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
Python爬虫天气预报实例详解(小白入门)
2018/01/24 Python
python取数作为临时极大值(极小值)的方法
2018/10/15 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
python wsgiref源码解析
2021/02/06 Python
英国最大的在线蜡烛商店:Candles Direct
2019/03/26 全球购物
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
文艺晚会开场白
2015/05/29 职场文书
第一节英语课开场白
2015/06/01 职场文书
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
Springboot集成kafka高级应用实战分享
2022/08/14 Java/Android