2011-09-06 130 views
5

我試圖將tar文件解壓縮到一個目錄中,但不知道如何。 我可以將它解壓縮到與tar文件相同的目錄,但不能放入其他文件夾。將tar文件解壓縮到目錄中

$filename = "homedir.tar"; 
exec("tar xvf $filename"); 

曾嘗試以下,但它不工作(被提取什麼):

exec("tar -C, homedir zxvf $filename"); 

更新:

這是我的文件的內容:

# Absolute paths 
$filepath = "/home/acc/public_html/test/test/homedir.tar"; 
$folderpath = "/home/acc/public_html/test/test/homedir"; 

# Check if folder exist 
if(!is_dir($folderpath)) { 
    die('Folder does not exist'); 
} 

# Check if folder is writable 
if(!is_writable($folderpath)) { 
    die('Folder is not writable'); 
} 

# Check if file exist 
if(!file_exists($filepath)) { 
    die('File does not exist'); 
} 

exec("tar -C $folderpath -zxvf $filepath"); 

沒有錯誤,但沒有任何解壓縮。

+0

是否在您的web服務器上安裝了pear tar? – Mythli

+0

嘗試傳遞一個空數組作爲第二個參數,然後檢查該數組的內容。它會告訴你所有的輸出,可能會給你一些關於錯誤的線索。見:http://us3.php.net/manual/en/function.exec.php – gregghz

+0

我試過了,返回空$ status = array(); exec(「tar -C $ folderpath -zxvf $ filepath」,$ status); print_r($ status); –

回答

3

取下-C逗號和zxvf前添加破折號:

exec("tar -C $outdir -zxvf $infile"); 

或者你可以把-C部分的結束,你不需要zxvf前的衝刺:

exec("tar zxvf $infile -C $outdir"); 

你應該確保你的路徑是絕對的,只是爲了確保。

+0

在我的error_log中獲取這個:[06-Sep-2011 14:39:11] PHP警告:模塊'json'已經在第0行加載未知 –