我试图使用 exec()
与 'whoami'
检查它是否有效,我得到了结果
nt authority\system
现在我需要通过 exec()
函数运行带有 php
参数的 .exe
文件 .
我在 command prompt 尝试了这个,它实际上运行带有给定参数的程序 . 这是示例命令 .
NOTE exe文件获取3个输入(文件夹,file_name,report_file_nmae)
> ..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml
但是当我从 php
文件运行此命令时:
exec('..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml');
一切都没有发生 . 这是我第一次使用exec()函数,所以我不熟悉它的细节 . What is wrong?
我试过用:
-
\\
而不是\
目录上有 -
escapeshellarg()
-
在目录文件夹名称周围添加了
""
没运气
Addendum:
echo exec($command) // echos < .... why?
要么
exec($command, $output);
print_r($output); // Array()
我甚至将文件的权限更改为对所有用户的完全控制权 . 如果我从 command prompt
调用该程序,我可以看到时钟旁边出现的图标一秒钟 .
但是来自 php
的同一个电话甚至不会调用该程序 .
Edit
即使 exec('notepad.exe');
也无效 . 有什么必须用 php
配置吗?
2 回答
我已经说过我是
exec()
函数的新手 . 在做了一些挖掘后,我遇到了2>&1
,需要在exec()
的命令末尾添加 .谢谢
@mattosmat
也在评论中指出了它 . 我没有立刻尝试这个,因为你说它是Linux命令,我在Windows上 .所以,我发现,该命令实际上是在后端执行的 . 这就是我无法看到它实际运行的原因,我期待这种情况发生 .
对于所有有类似问题的人,我的建议是使用该命令 . It will point out all the errors and also tell you info/details about execution.
感谢所有帮助人员,我很感激;)
您也可以尝试提供您尝试运行的二进制文件的完整路径 . 这在尝试使用
ImageMagick
时解决了我的问题 .