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用户指南-cookies部分
Oct 09 PHP
PHP 5.3新特性命名空间规则解析及高级功能
Mar 11 PHP
php 编写安全的代码时容易犯的错误小结
May 20 PHP
PHP函数strip_tags的一个bug浅析
May 22 PHP
windows下配置apache+php+mysql时出现问题的处理方法
Jun 20 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
Oct 17 PHP
php中使用gd库实现远程图片下载实例
May 12 PHP
WordPress迁移时一些常见问题的解决方法整理
Nov 24 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
Jun 13 PHP
Laravle eloquent 多对多模型关联实例详解
Nov 22 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
Oct 11 PHP
PHP连接MySQL数据库三种实现方法
Dec 10 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/03 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
写的htc的数据表格
2007/01/20 Javascript
js 多种变量定义(对象直接量,数组直接量和函数直接量)
2010/05/24 Javascript
新鲜出炉的js tips提示效果
2011/04/03 Javascript
jQuery Tab插件 用于在Tab中显示iframe,附源码和详细说明
2011/06/27 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
JavaScript判断对象是否为数组
2015/12/22 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
python 爬取微信文章
2016/01/30 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
Pytorch提取模型特征向量保存至csv的例子
2020/01/03 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
ECOSUSI官网:女式皮革背包
2019/09/27 全球购物
Linux常见面试题
2013/03/18 面试题
品质主管的岗位职责
2013/12/04 职场文书
初中地理教学反思
2014/01/11 职场文书
秋季运动会通讯稿
2014/01/24 职场文书
销售主管岗位职责范本
2014/02/14 职场文书
关于热爱祖国的演讲稿
2014/05/04 职场文书
单位租房协议书样本
2014/10/30 职场文书
二手车转让协议书
2015/01/29 职场文书
主持人大赛开场白
2015/05/29 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
MySQL 不等于的三种使用及区别
2021/06/03 MySQL
CSS SandBox应用场景及常见问题
2022/06/25 HTML / CSS