我有一个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 system/exec
运行wget
,有没有办法像$?
脚本中使用的那样捕获退出状态?我已经阅读了文件下载可以使用file_put_contents()
完成,就像这篇堆栈溢出帖子中的此处一样。但我也担心allow_fopen_url Off
部分作为提到的评论之一。我认为我需要一个更通用的解决方案,将从 bash 到 php 的更改保持在最低限度。
如何在此处捕获退出状态?请提供任何提示?
有一个exit
函数。从 php 文档:
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);
同样,根据文档:
return_var
如果 return_var 参数与输出参数一起存在,则执行命令的返回状态将写入此变量。