2014-02-13 53 views
0

我有一个简单的PHP程序可以创建焦油。在成功的情况下,它输出文件名,并在失败的情况下输出错误信息。

我的问题是如何应用条件来检查它是否是错误的。

喜欢:

If ($output == error) 
    { 
    do something....  
    } 
else{ 
    do something.... 
} 

我的PHP代码如下:

<?php 

$output = shell_exec("tar cvzf /var/www/html/abhishek/abhi.tar.gz -C /var/www/html/abhishek/ abhi.pdf 2>&1"); 

echo $output; 

?> 

注:我的文件名是动态的。

+0

也许你应该看看到PHP类PharData:http://www.php.net/manual/en/class.phardata.php – SenseException

回答

1

UNIX实用程序通常以退出状态结束。退出状态为0表示成功或其他任何指示错误(不同错误的数字不同)。 exec代替shell_exec让你捕捉代码:

$lastLine = exec("tar ...", $output, $exitCode); 

if ($exitCode == 0) { 
    // success 
} else { 
    // failure 
} 
+0

为什么我们需要'$ output'在这里? – codemania

+0

因为您可能想要捕获整个输出,所以返回值只是最后一行。如果你想在它之后提供'$ exitCode'参数,你还需要提供一个参数。 – deceze

0

如果您知道文件名,那么您可以使用file_exists来检查文件是否存在。如果它存在,那么它的成功&如果没有,它的错误

+0

但文件名是动态的。 – codemania

0

可以使用EXEC实用。检查this

希望这可以帮助你

感谢