【问题标题】:What is different between exec(), shell_exec, system() and passthru() functions in PHP? [duplicate]PHP 中的 exec()、shell_exec、system() 和 passthru() 函数有什么不同? [复制]
【发布时间】:2013-12-03 01:45:57
【问题描述】:

有人请告诉我。我想知道exec()shell_execsystem()passthru() 函数之间的区别?

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

【问题讨论】:

标签: php


【解决方案1】:

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

更多信息请见PHP - exec() vs system() vs passthru()

另见php shell_exec() vs exec()

【讨论】:

    【解决方案2】:
    • exec 只返回生成输出的最后一行。
    • 当命令完成运行时,shell_exec 返回命令的完整输出。
    • system 立即显示所有输出,并用于显示文本。
    • passthru 也立即返回输出,但用于二进制数据。 passthru 显示原始数据。

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

    更详细的比较可以在here 找到。

    【讨论】:

    • 如果你有一个例子会很棒
    • system 出错时返回 false。这是否意味着当退出代码为!== 0 时它将返回false?所以如果我只想检查命令是否成功,我不必实际检查$retval
    猜你喜欢
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多