php相当于bash中的退出状态

时间:2014-12-04 10:28:57

标签: php bash file

我有一个bash脚本,现在我需要将它转换为php,作为cgi脚本。看到我有这样的bash行

wget http://repo.domain/sources/latest_version.tar.gz > /dev/null 2>&1;
if [ $? != 0 ]
then
echo "Could not download file...";
exit 0;
fi

如果我使用php wget运行system/exec,是否有办法捕获退出状态,例如此脚本中使用的$??我已经读过可以使用file_put_contents()完成文件下载,如stackoverflow post中所述。但我也关注allow_fopen_url Off部分作为上述评论之一。我想我需要一个更通用的解决方案,保持从bash到php最小化的变化。

如何在此处查看退出状态?有什么提示吗?

1 个答案:

答案 0 :(得分:1)

有一个exit功能。来自php documentation

void exit ([ string $status ] )
void exit ( int $status )
  

终止脚本的执行。即使调用exit,也将始终执行关闭函数和对象析构函数。

     

exit是一种语言结构,如果没有传递状态,则可以在没有括号的情况下调用它。

所以在你的情况下,它将是exit(0)

编辑:嗯,据我所知,wget是一个linux shell命令而不是php,你可以运行它并得到输出吗?

exec('wget http://repo.domain/sources/latest_version.tar.gz > /dev/null 2>&1', $output, $return_var);

再次,根据docs

  

return_var   如果return_var参数与输出参数一起出现,则执行命令的返回状态将写入此变量。