[英]shell_exec in PHP is not working
shell_exec()在我的本地主机上不起作用。 我阅读了很多网站来解决此问题,但是找不到解决方案。 这段代码:
$output = shell_exec("env");
print "<pre>$output</pre>";
不提供任何输出。
我检查了php.ini disable_functions
但未禁用shell_exec
。 我没有执行error_reporting = E_ALL
但再次没有输出(没有错误)。 我所得到的只是一个空白屏幕。 甚至safe_mode
已关闭。
如果我写echo "BULB";
在上面的代码之后,它正在打印“ BULB”。
可能是什么问题?
您希望从env
获得什么信息? 从您的评论来看,在我看来,您似乎正在尝试在Windows系统上使用Linux命令-永远行不通。
在Linux系统上,像这样的env
命令本身会返回已定义的环境变量的列表。 但是, env
在Windows中不是有效命令。
如果您只是在寻找环境变量列表,那么实际上可以在PHP中获得它,而不必执行shell命令。 PHP具有内置的全局变量$_ENV
,其中包含程序声明时定义的所有环境变量的副本。 只需print_r($_ENV)
即可查看它们。
另一方面,如果由于某些原因确实需要使用shell_exec()
,则需要考虑所使用的操作系统。 在Linux上,您可以使用env
命令。 Windows上的等效set
没有任何参数。 因此,您的代码变为:
$output = shell_exec("set");
请注意,输出格式可能与Linux上的格式不同,因此,如果要解析它,则该代码也必须更改。
如果您需要代码能够在多个平台上运行,则需要在shell_exec()
调用之前编写其他代码,以确定操作系统并制定出要使用的正确命令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.