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 addslashes和mysql_real_escape_string
Jan 24 PHP
如何使用PHP实现javascript的escape和unescape函数
Jun 29 PHP
php+js实现图片的上传、裁剪、预览、提交示例
Aug 27 PHP
is_uploaded_file函数引发的不能上传文件问题
Oct 29 PHP
php获取301跳转URL简单实例
Dec 16 PHP
PHP中file_exists函数不支持中文名的解决方法
Jul 26 PHP
C/S和B/S两种架构区别与优缺点分析
Oct 23 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
Oct 22 PHP
非常全面的php日期时间运算汇总
Nov 04 PHP
php判断是否为ajax请求的方法
Nov 29 PHP
php+js实现裁剪任意形状图片
Oct 31 PHP
使用laravel指定日志文件记录任意日志
Oct 17 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
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
js删除所有的cookie的代码
2010/11/25 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
2014/04/12 Javascript
javascript实现youku的视频代码自适应宽度
2015/05/25 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
jQuery的框架介绍
2016/05/11 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
Angular模板表单校验方法详解
2017/08/11 Javascript
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
浅析JavaScript 函数柯里化
2020/09/08 Javascript
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
MySQL最常见的操作语句小结
2015/05/07 Python
matplotlib绘制动画代码示例
2018/01/02 Python
使用pandas read_table读取csv文件的方法
2018/07/04 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
Python sep参数使用方法详解
2020/02/12 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
缅怀革命先烈演讲稿
2014/05/14 职场文书
煤矿安全保证书
2015/02/27 职场文书
企业党建工作总结2015
2015/05/26 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
CSS3实现的侧滑菜单
2021/04/27 HTML / CSS
Mysql数据库命令大全
2021/05/26 MySQL
CSS实现背景图片全屏铺满自适应的3种方式
2022/07/07 HTML / CSS