喜欢func("rm -rf /usr/local/)
你会用哪个'func'做到这一点?
答案 0 :(得分:4)
这取决于你想要获得的东西。
如果要显示已执行的命令的输出,passthru
可以解决问题:
应该使用此功能 当输出时的exec()或system() 从Unix命令是二进制数据 需要直接传回 到浏览器。这是一个常见的用途 是执行类似的东西 可以输出的pbmplus实用程序 图像流直接。
如果要将变量的输出作为整个字符串获取,可以使用shell_exec
(与使用backtick operator相同):
通过shell执行命令并返回 完整输出为字符串
而且,如果你想逐行获取它,你将使用exec
:
如果输出参数存在, 然后指定的数组将是 充满了每一行输出 命令。尾随空白,如此 as \ n,不包含在此数组中。
最后,如果您需要更多控制权,您将使用proc_open
- 请参阅有关该文档的文档;我觉得它有点棘手。
不过,在使用时:
safe_mode_exec_dir
,关于那个所以,我只有在真的必要时才使用它们。
答案 1 :(得分:2)
你会使用PHP的exec
function。其他选项包括system
,passthru
和backtick operator。
答案 2 :(得分:0)
我个人认为proc_open是最好的方法。
这使您可以更好地控制输入,输出,让您检查它的退出状态和STDOUT,这比系统调用的大多数其他命令更多。当命令退出时,它也不会占用系统。