繁体   English   中英

PHP中的shell_exec无法正常工作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM