我想在我的服务器上运行 exe 文件并将输出返回到浏览器屏幕。
exe 文件获取输入文件,然后在屏幕上返回数据。
为什么这段代码不起作用?
$output = shell_exec('myprogram < INP.DAT');
echo "<pre>" . var_export($output, TRUE) ."</pre>\\n";
它在浏览器屏幕上显示“NULL”。我也尝试过exec()。它返回“Array()”。
其中一条评论 https://www.php.net/manual/en/function.shell-exec.php#87800 on the shell_exec
手册页说:
请注意以下不一致的情况:shell_exec()
如果命令的输出为空,反引号运算符将不会返回字符串——它们会返回NULL
反而。
这将进行严格比较''
return false
.
可能是如果 PHP 处于安全模式则禁用 https://www.php.net/manual/en/features.safe-mode.functions.php.
shell_exec()
(功能相当于反引号)
当 PHP 在安全模式下运行时,此功能被禁用。
exec()
您只能在以下范围内执行可执行文件safe_mode_exec_dir
。出于实际原因,目前不允许..
可执行文件路径中的组件。escapeshellcmd()
在此函数的参数上执行。
您可以使用以下命令检查服务器的 PHP 设置phpinfo() https://www.php.net/manual/en/function.phpinfo.php功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)