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目錄下(任意目錄下都可以) 執行 php go-pear.phar 命令,根據提示按enter即可

  

  1、安裝

#這個類實際安裝pear時默認就會安裝
pear install archive_tar

  2、

/**
原理: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";

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM