我试图用exec()
它'whoami'
来检查它是否有效,我得到了结果
nt authority\system
Run Code Online (Sandbox Code Playgroud)
现在我需要运行.exe
带有php
via exec()
函数参数的文件.
我在命令提示符下尝试了这个,它实际上运行带有给定参数的程序.这是示例命令.
注意 exe文件获得3个输入(文件夹,file_name,report_file_nmae)
> ..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml
Run Code Online (Sandbox Code Playgroud)
但是当我从php
文件中运行此命令时:
exec('..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml');
Run Code Online (Sandbox Code Playgroud)
一切都没有发生.这是我第一次使用exec()函数,所以我不熟悉它的细节.怎么了?
我试过用:
\\
代替 \
escapeshellarg()
在目录上""
了目录文件夹名称没运气
附录:
echo exec($command) // echos < .... why?
Run Code Online (Sandbox Code Playgroud)
要么
exec($command, $output);
print_r($output); // Array()
Run Code Online (Sandbox Code Playgroud)
我甚至将文件的权限更改为对所有用户的完全控制权.如果我从中调用该程序command prompt
,我可以看到时钟旁边出现的图标.
但同样的呼叫php
甚至都不会调用该程序.
编辑
即使exec('notepad.exe');
不工作.php
可能需要对配置做些什么?
Bri*_*ian 80
我已经说过我是新手了exec()
.在做了一些挖掘之后,我遇到了2>&1
需要在命令结束时添加的东西exec()
.
感谢您@mattosmat
在评论中指出它.我没有立刻尝试这个,因为你说它是Linux命令,我在Windows上.
所以,我发现,该命令实际上是在后端执行的.这就是我无法看到它实际运行的原因,我期待这种情况发生.
对于所有有类似问题的人,我的建议是使用该命令.它将指出所有错误,并告诉您有关执行的信息/详细信息.
exec('some_command 2>&1', $output);
print_r($output); // to see the response to your command
Run Code Online (Sandbox Code Playgroud)
感谢所有帮助人员,我很感激;)