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调用三种数据库的方法(2)
Oct 09 PHP
超级实用的7个PHP代码片段分享
Jan 05 PHP
查找mysql字段中固定字符串并替换的几个方法
Sep 23 PHP
php中检查文件或目录是否存在的代码小结
Oct 22 PHP
php自定义错误处理用法实例
Mar 20 PHP
thinkphp下MySQL数据库读写分离代码剖析
Apr 18 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 PHP
php微信公众号开发之秒杀
Oct 20 PHP
使用Zookeeper分布式部署PHP应用程序
Mar 15 PHP
PHP反射实际应用示例
Apr 03 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
Aug 09 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高级对象构建 多个构造函数的使用
2012/02/05 PHP
php结合ajax实现赞、顶、踩功能实例
2014/05/12 PHP
php判断邮箱地址是否存在的方法
2016/02/13 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
js控制table合并具体实现
2014/02/20 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
2019/04/11 Javascript
js实现页面多个日期时间倒计时效果
2019/06/20 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
python实现连接mongodb的方法
2015/05/08 Python
Python中zfill()方法的使用教程
2015/05/20 Python
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
Python使用wxPython实现计算器
2018/01/30 Python
python实现图书借阅系统
2019/02/20 Python
简单了解python中对象的取反运算符
2019/07/01 Python
python内存管理机制原理详解
2019/08/12 Python
Python爬取12306车次信息代码详解
2020/08/12 Python
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
英语专业毕业生自荐信
2013/10/28 职场文书
园林设计专业毕业生求职信
2014/03/23 职场文书
车间质检员岗位职责
2015/04/08 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书
CocosCreator如何实现划过的位置显示纹理
2021/04/14 Javascript