检查 exec() 是否成功运行

2022-08-30 11:09:46

我一直试图让知道php中的命令是否成功执行,以便我可以相应地回显某些消息。我尝试了以下代码,但问题是无论成功运行与否,它总是并且永远不会回显成功创建的pdf。请让我知道我如何执行exec()的执行检查,以便我可以相应地回显消息 谢谢,exec()exec()echo "PDF not created"

<?php
if (exec('C://abc//wkhtmltopdf home.html sample.pdf'))
echo "PDF Created Successfully";
else
echo "PDF not created";
?>

答案 1

根据PHP的exec quickref,你可以传递指针来获取命令的输出和状态。

<?php
exec('C://abc//wkhtmltopdf home.html sample.pdf', $output, $return);

// Return will return non-zero upon an error
if (!$return) {
    echo "PDF Created Successfully";
} else {
    echo "PDF not created";
}
?>

如果你想枚举可能的错误,你可以在hiteksoftware上找到代码


答案 2

正确的方法是检查$return_var 是否未设置为零,因为它仅在成功时才设置为零。在某些情况下,exec 可能会失败,并且return_var不会设置为任何内容。例如,如果服务器在执行期间磁盘空间不足。

<?php
exec('C://abc//wkhtmltopdf home.html sample.pdf', $output, $return_var);
if($return_var !== 0){ // exec is successful only if the $return_var was set to 0. !== means equal and identical, that is it is an integer and it also is zero.
    echo "PDF not created";
}
else{
    echo "PDF Created Successfully";
}

?>

注意:不要将$return_var 初始化为零


推荐