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 和 HTML
Oct 09 PHP
php 图片上传类代码
Jul 17 PHP
PHP输出数组中重名的元素的几种处理方法
Sep 05 PHP
PHP修改session_id示例代码
Jan 08 PHP
PHP的password_hash()使用实例
Mar 17 PHP
php ajax实现文件上传进度条
Mar 29 PHP
PHP实现留言板功能的详细代码
Mar 25 PHP
Laravel 队列使用的实现
Jan 08 PHP
YII框架模块化处理操作示例
Apr 26 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
May 29 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 PHP
PDO实现学生管理系统
Mar 21 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笔记之:php函数range() round()和list()的使用说明
2013/04/26 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
2014/01/17 PHP
php获取apk包信息的方法
2014/08/15 PHP
PHP生成条形图的方法
2014/12/10 PHP
详解php的socket通信
2015/08/11 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
jquery 表单进行客户端验证demo
2009/08/24 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
JavaScript获取网页支持表单字符集的方法
2015/04/02 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
Vue 重置组件到初始状态的方法示例
2018/10/10 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
js实现tab栏切换效果
2020/08/02 Javascript
JavaScript canvas实现跟随鼠标移动小球
2021/02/09 Javascript
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
Python 40行代码实现人脸识别功能
2017/04/02 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
运行Python编写的程序方法实例
2020/10/21 Python
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
linux面试题参考答案(11)
2012/05/01 面试题
应聘收银员个人的求职信
2013/11/30 职场文书
高中的自我鉴定
2013/12/16 职场文书
社会保险接收函
2014/01/12 职场文书
经典团队口号
2014/06/06 职场文书
年终晚会活动方案
2014/08/21 职场文书
小学家长通知书评语
2014/12/31 职场文书
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis