exec和popen之间的区别

时间:2014-08-21 10:53:28

标签: php linux

我想在我的服务器上运行外部PHP文件我发现我可以使用execpopen

我读到popen用于Windows,而exec用于Linux。

另一方面,我看到了popen也可用于Linux的示例。我还是个新手。可能吗?如果execpopen都有效,那么您对Linux推荐哪些?

当我感到困惑时,有什么好处。

3 个答案:

答案 0 :(得分:4)

如果您只需要执行外部应用,请使用exec()shell_exec()。如果需要指针,则使用popen(),类似于fopen()对文件的指针。 fopen()只是打开指向文件的指针,没有别的。然后,您需要其他函数(fread()fwrite())来实际使用该文件。

同样的逻辑适用于popen()

exec()shell_exec()可用于Windows和Linux。

答案 1 :(得分:2)

就我而言,我正在使用popen从Apache Web应用程序运行异步php脚本。我正在尝试execshell_execpclosepopen(...)),并且唯一一个创建新流程并异步执行它的是{{1} }。所有其他人在回答浏览器之前等待脚本完成。

我的配置是CentOS7,PHP 5.4.16和Apache 2.4,尚未在Windows上试过。

答案 2 :(得分:1)

PHP的目标是独立于平台。所有流程执行功能都适用于Linux和Windows(以及PHP支持的任何其他平台)。在您从不受信任的来源“听到”某些内容之前,建议您阅读PHP manual