Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash中退出状态的php等价物_Php_Bash_File - Fatal编程技术网

bash中退出状态的php等价物

bash中退出状态的php等价物,php,bash,file,Php,Bash,File,我有一个bash脚本,现在我需要将它转换成php,作为cgi脚本 wget http://repo.domain/sources/latest_version.tar.gz > /dev/null 2>&1; if [ $? != 0 ] then echo "Could not download file..."; exit 0; fi 如果我使用phpsystem/exec运行wget,是否有方法捕获此脚本中使用的退出状态,如$??我已经读到,文件下载可以使用file\

我有一个bash脚本,现在我需要将它转换成php,作为cgi脚本

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\u put\u contents()
来完成。但我还担心
allow\u fopen\u url Off
部分,这是前面提到的注释之一。我想我需要一个更通用的解决方案,将从bash到php的更改保持在最低限度


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

有一个退出功能。从php:

终止脚本的执行。即使调用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\u var
如果return_var参数与output参数一起出现,则执行命令的返回状态将写入该变量


PHP中加载外部文件的默认方法是使用。永远不要使用
file\u get\u contents()
访问不在您自己服务器上的内容。这可能因配置而中断。是的,您可以在PHP中获得已执行shell命令的返回值。但这已经很好了。是的,但人们可以去除卷曲,对吗?这就是为什么我想坚持使用
exec
functionYes,人们也可以删除PHP。通过配置或随机删除库来保护服务器是有区别的。在本例中,cURL与您的程序运行所需的任何其他库一样,只是一个依赖项。我无意冒犯朋友。我正在尝试为面板管理员创建一个控制面板扩展。我无法确定他们对cURL的看法:)谢谢您的回复。我已经看到
退出
,但是我不清楚。它不会停止其余代码的执行吗?
exit
停止当前PHP脚本并向调用实例返回退出代码。但问题是如何获得另一个程序返回的退出代码,如
wget
。有时,您所需要的只是对文档进行一次良好的旧读取:p假设它们有任何退出代码
exec('wget http://repo.domain/sources/latest_version.tar.gz > /dev/null 2>&1', $output, $return_var);