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 相关文章推荐
加速XP搜索功能堪比vista
Mar 22 PHP
PHP5与MySQL数据库操作常用代码 收集
Mar 21 PHP
php设计模式 Factory(工厂模式)
Jun 26 PHP
set_include_path和get_include_path使用及注意事项
Feb 02 PHP
使用php测试硬盘写入速度示例
Jan 27 PHP
PHP+javascript制作带提示的验证码源码分享
May 28 PHP
php+xml结合Ajax实现点赞功能完整实例
Jan 30 PHP
浅谈json_encode用法
Mar 05 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
May 30 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
Jul 14 PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 PHP
php判断目录存在的简单方法
Sep 26 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字符串函数的总结分析
2013/06/05 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
PHP错误机制知识汇总
2016/03/24 PHP
thinkphp项目如何自定义微信分享描述内容
2017/02/20 PHP
JavaScript与DropDownList 区别分析
2010/01/01 Javascript
也说JavaScript中String类的replace函数
2011/09/22 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
再次谈论Javascript中的this
2016/06/23 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
vue项目中使用lib-flexible解决移动端适配的问题解决
2018/08/23 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
2019/02/02 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
Windows下使Python2.x版本的解释器与3.x共存的方法
2015/10/25 Python
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
Python中的单行、多行、中文注释方法
2018/07/19 Python
python 动态调用函数实例解析
2019/10/21 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
html5定位并在百度地图上显示的示例
2014/04/27 HTML / CSS
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
产品工艺师的岗位职责
2013/11/15 职场文书
公司业务主管岗位职责
2013/12/07 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
代理人委托书
2014/09/16 职场文书
晚会开幕词
2015/01/28 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
宣传委员竞选稿
2015/11/19 职场文书
Oracle 多表查询基本语法实例
2022/04/18 Oracle