2011-09-06 91 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行加载未知 –

相关问题