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 相关文章推荐
支持php4、php5的mysql数据库操作类
Jan 10 PHP
计算一段日期内的周末天数的php代码(星期六,星期日总和)
Nov 12 PHP
php计算十二星座的函数代码
Aug 21 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
May 15 PHP
ThinkPHP使用smarty模板引擎的方法
Jul 01 PHP
php中将一段数据存到一个txt文件中并显示其内容
Aug 15 PHP
WordPress中对访客评论功能的一些优化方法
Nov 24 PHP
thinkphp中字符截取函数msubstr()用法分析
Jan 09 PHP
PHP模块化安装教程
Jun 01 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
Feb 25 PHP
解决出现SoapFault (looks like we got no XML document)的问题
Jun 24 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
Apr 27 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数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
2017/04/04 PHP
关于laravel 日志写入失败问题汇总
2019/10/17 PHP
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
2018/09/11 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
对Python3中的input函数详解
2018/04/22 Python
python基于http下载视频或音频
2018/06/20 Python
Python双向循环链表实现方法分析
2018/07/30 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
python tkinter canvas使用实例
2019/11/04 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
Flask模板引擎Jinja2使用实例
2020/04/23 Python
python实现简单的五子棋游戏
2020/09/01 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
2021/03/04 Python
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
程序员岗位职责
2013/11/11 职场文书
离职证明标准格式
2014/09/15 职场文书
杨善洲观后感
2015/06/04 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
python3使用diagrams绘制架构图的步骤
2021/04/08 Python
继承Win10缺点!教你关闭Win11烦人的网络搜索
2021/11/23 数码科技
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
2022/04/21 Python
Java线程的6种状态与生命周期
2022/05/11 Java/Android