2013-08-27 31 views
3

考虑下面的代码tar工具,PHP和exec

echo "tar -cvf $outpath -C $path $file<br>"; 
$arr = array(); 
$val = exec("tar -cvf $outpath -C $path $file", $arr); 
var_dump($arr); 

echo输出tar -cvf ../folder/subfolder1/1234.tar -C ../folder/ subfolder2和该命令真正创建归档,如果我把它叫做命令行从htdocs文件夹。然而,exec无所作为。 var_dump($arr)打印空数组。所以这里有问题

  1. 我怎样才能使exec创建档案?
  2. 为什么输出空数组?

UPD。请注意,我正在运行windows。

+0

'shell_exec('....')'也许? http://stackoverflow.com/questions/2173443/php-shell-tar-problem-return-code-2 – DrColossos

+0

@ DrColossos,'shell_exec'输出什么也没有:( – Eugeny89

回答

3

对于那些会读到这个问题的人:添加2>&1到命令帮助。而我用shell_exec代替鞋底

$val = shell_exec("tar -cvf $outpath -C $path $file 2>&1"); 
echo "$val"; // prints output from tar