PHP中的exec(),shell_exec,system()和passthru()函数有什么不同?

时间:2013-11-19 13:22:50

标签: php

任何人请告诉我。我想知道exec()shell_execsystem()passthru()函数之间的差异吗?

我从php.net搜索无法得到我需要的答案。

2 个答案:

答案 0 :(得分:60)

  • exec仅返回生成的输出的最后一行。
  • 当命令完成运行时,
  • shell_exec返回命令的完整输出。
  • system会立即显示所有输出,并用于显示文字。
  • passthru也会立即返回输出,但用于二进制数据。 passthru显示原始数据。

同时使用execshell_exec可以自行处理输出,而systempassthru则不允许您自定义输出并立即显示输出。

可以找到更详细的比较here

答案 1 :(得分:3)

passthru用于返回二进制数据而不是ascii。一个典型的例子是图像处理程序返回图像而不是文本数据。

有关详细信息,请参阅PHP - exec() vs system() vs passthru()

另见php shell_exec() vs exec()