我想在我的服务器上运行外部PHP文件我发现我可以使用exec
或popen
。
我读到popen
用于Windows,而exec
用于Linux。
另一方面,我看到了popen
也可用于Linux的示例。我还是个新手。可能吗?如果exec
和popen
都有效,那么您对Linux推荐哪些?
当我感到困惑时,有什么好处。
答案 0 :(得分:4)
如果您只需要执行外部应用,请使用exec()
或shell_exec()
。如果需要指针,则使用popen()
,类似于fopen()
对文件的指针。 fopen()
只是打开指向文件的指针,没有别的。然后,您需要其他函数(fread()
,fwrite()
)来实际使用该文件。
同样的逻辑适用于popen()
。
exec()
或shell_exec()
可用于Windows和Linux。
答案 1 :(得分:2)
就我而言,我正在使用popen
从Apache Web应用程序运行异步php脚本。我正在尝试exec
,shell_exec
和pclose
(popen
(...)),并且唯一一个创建新流程并异步执行它的是{{1} }。所有其他人在回答浏览器之前等待脚本完成。
我的配置是CentOS7,PHP 5.4.16和Apache 2.4,尚未在Windows上试过。
答案 2 :(得分:1)
PHP的目标是独立于平台。所有流程执行功能都适用于Linux和Windows(以及PHP支持的任何其他平台)。在您从不受信任的来源“听到”某些内容之前,建议您阅读PHP manual