PHP解壓tar.gz格式文件的方法
本文實(shí)例講述了PHP解壓tar.gz格式文件的方法。分享給大家供大家參考,具體如下:
1、運(yùn)用php自帶壓縮與歸檔擴(kuò)展(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默認(rèn)沒(méi)有安裝pear, go-pear.php 適合舊版本的 , php5.3 需要 下載 go-pear.phar 
將下載的 文件放到 php目錄下(任意目錄下都可以) 執(zhí)行 php go-pear.phar 命令,根據(jù)提示按enter即可
①、安裝
#這個(gè)類實(shí)際安裝pear時(shí)默認(rèn)就會(huì)安裝 pear install archive_tar
②、
/**
原理:tar壓縮包前512字節(jié)有自己的固定格式,根據(jù)這512個(gè)字節(jié)可以獲取壓縮包的文件名,大小等信息
在配合 gzopen,gzread 便可以解壓gz格式
*/
$tar_object = new Archive_Tar("song.tar.gz");
$tar_object->extract('c:/tmp', true);
3、php調(diào)用外部命令來(lái)執(zhí)行解壓
//必須等命令執(zhí)行完成,腳本才會(huì)推出,popen命令并非異步去執(zhí)行
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";
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP操作zip文件及壓縮技巧總結(jié)》、《PHP基本語(yǔ)法入門教程》、《PHP錯(cuò)誤與異常處理方法總結(jié)》及《php常用函數(shù)與技巧總結(jié)》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
通過(guò)PHP實(shí)現(xiàn)獲取訪問(wèn)用戶IP
這篇文章主要介紹了通過(guò)PHP實(shí)現(xiàn)獲取訪問(wèn)用戶IP,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
一道求$b相對(duì)于$a的相對(duì)路徑的php代碼
這是一段計(jì)算兩個(gè)路徑的相對(duì)路徑的php代碼,需要的朋友可以參考下。2010-08-08
PHP計(jì)劃任務(wù)之關(guān)閉瀏覽器后仍然繼續(xù)執(zhí)行的函數(shù)
通過(guò)使用ignore_user_abort函數(shù)的特性,實(shí)現(xiàn)PHP計(jì)劃任務(wù),需要的朋友可以參考下。2010-07-07
PHP實(shí)現(xiàn)將科學(xué)計(jì)數(shù)法轉(zhuǎn)換為原始數(shù)字字符串的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)將科學(xué)計(jì)數(shù)法轉(zhuǎn)換為原始數(shù)字字符串的方法,通過(guò)一個(gè)簡(jiǎn)單的自定義函數(shù)使用正則替換實(shí)現(xiàn)該功能,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-12

