【发布时间】:2023-03-31 11:24:01
【问题描述】:
(看似)无论我尝试使用 PHP 的 system 函数运行什么命令,该命令总是什么都不做,然后以退出代码 1 失败。例如,
system("echo 'this should definitely work'", $retval);
设置$retval = 1。也一样
system("dir", $retval);
以及运行我编写的可执行文件;当我跑步时
vfmt -h cat.v
来自cmd.exe,该命令有效并返回退出代码 0,但正在运行
system("vfmt -h cat.v", $retval);
再次设置$retval = 1。此vfmt.exe 文件与尝试这些system 调用的src.php 脚本位于同一目录中。
我几乎无计可施,试图找出问题所在。什么可能导致此问题?
【问题讨论】:
-
您应该在问题中包含有关您的环境的信息,例如:什么服务器,您如何运行 php(例如服务器加载或 php-cgi)等等......以及错误中的一些行-log-file ...否则,所有答案都只会“猜测”-我的下面这样。
-
在命令末尾添加 2>&1 以将错误从 stderr 重定向到 stdout。这应该清楚出了什么问题。见stackoverflow.com/questions/538939/…
-
尝试添加vfmt.exe的路径,例如:
system("c:\\path_to_exe\\vfmt.exe -h cat.v", $retval); -
您是否遗漏了原始脚本中的引号,或者只是提出的问题?
-
@beroe 只是提出的问题......对不起,我会解决它。