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 相关文章推荐
计数器详细设计
Oct 09 PHP
BBS(php & mysql)完整版(一)
Oct 09 PHP
PHP IF ELSE简化/三元一次式的使用
Aug 22 PHP
PHP设计模式之命令模式的深入解析
Jun 13 PHP
PHP伪静态Rewrite设置之APACHE篇
Jul 30 PHP
php读取der格式证书乱码解决方法
Jun 22 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
Jan 08 PHP
浅析PHP中的i++与++i的区别及效率
Jun 15 PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 PHP
PHP中localeconv()函数的用法
Mar 26 PHP
PHP命名空间(namespace)原理与用法详解
Dec 11 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中http_build_query 的一个问题
2012/03/25 PHP
php不写闭合标签的好处
2014/03/04 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
Firefox outerHTML实现代码
2009/06/04 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
easyui validatebox验证
2016/04/29 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
2016/12/02 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
使用Bootstrap + Vue.js实现添加删除数据示例
2017/02/27 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
layuiAdmin循环遍历展示商品图片列表的方法
2019/09/16 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
python爬取王者荣耀全皮肤的简单实现代码
2020/01/31 Python
jupyter notebook 增加kernel教程
2020/04/10 Python
Spark处理数据排序问题如何避免OOM
2020/05/21 Python
CSS3实现王者荣耀匹配人员加载页面的方法
2019/04/16 HTML / CSS
纯CSS3制作页面切换效果的实例代码
2019/05/30 HTML / CSS
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
MIRTA官网:手工包,100%意大利制造
2020/02/11 全球购物
数控机械专业个人的自我评价
2014/01/02 职场文书
简单的辞职信范文
2014/01/18 职场文书
总经理岗位职责范本
2014/02/02 职场文书
个人简历中自我评价
2014/02/11 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
Java实现聊天机器人完善版
2021/07/04 Java/Android
Nginx静态压缩和代码压缩提高访问速度详解
2022/05/30 Servers