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笔试题
Aug 04 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
Aug 02 PHP
如何用C语言编写PHP扩展的详解
Jun 13 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
自己写的php中文截取函数mb_strlen和mb_substr
Feb 09 PHP
php选择排序法实现数组排序实例分析
Feb 16 PHP
php实现Session存储到Redis
Nov 11 PHP
Yii2针对指定url的生成及图片等的引入方法小结
Jul 18 PHP
php导出csv文件,可导出前导0实例代码
Nov 16 PHP
Yii框架分页实现方法详解
May 20 PHP
PHP实现的杨辉三角求解算法分析
Mar 11 PHP
phpstorm 配置xdebug的示例代码
Mar 31 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配置文件php.ini的路径的方法
2014/08/20 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
phpwind放自动注册方法
2006/12/02 Javascript
根据分辩率调用不同的CSS.
2007/01/08 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
js读写json文件实例代码
2014/10/21 Javascript
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
Node.js实现发送邮件功能
2017/11/06 Javascript
配置eslint规范项目代码风格
2019/03/11 Javascript
js console.log打印对象时属性缺失的解决方法
2019/05/23 Javascript
js中调用微信的扫描二维码功能的实现代码
2020/04/11 Javascript
Postman内建变量常用方法实例解析
2020/07/28 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
2017/11/23 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
Python利用神经网络解决非线性回归问题实例详解
2019/07/19 Python
python 消费 kafka 数据教程
2019/12/21 Python
Python 面向对象部分知识点小结
2020/03/09 Python
CSS3 边框效果
2019/11/04 HTML / CSS
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
北京华建集团SQL面试题
2014/06/03 面试题
物理系毕业生自荐信
2013/11/01 职场文书
警察群众路线整改措施
2014/09/26 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
2016春节家属慰问信
2015/03/25 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
什么是Python装饰器?如何定义和使用?
2022/04/11 Python