将tar文件解压缩到目录中。

5

我想将一个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");

没有错误,但是也没有压缩文件被解压缩。

你的 Web 服务器上安装了梨子 tar 吗? - Mythli
尝试将一个空数组作为第二个参数传递,然后检查该数组的内容。它会显示所有输出,这可能会给你关于出了什么问题的线索。请参见:http://us3.php.net/manual/en/function.exec.php - gregghz
我尝试过了,返回空的 $status = array(); exec("tar -C $folderpath -zxvf $filepath", $status); print_r($status); - Kenneth Poulsen
1个回答

3
从-C中删除逗号并在zxvf之前添加破折号。
exec("tar -C $outdir -zxvf $infile");

或者你可以将-C部分放在末尾,这样你就不需要在zxvf前加破折号:

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

为了确保路径正确,您应该确保使用的是绝对路径。


在我的error_log中得到了这个:[06-Sep-2011 14:39:11] PHP警告:模块“json”已在未知的第0行加载。 - Kenneth Poulsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接