PHP的passthru()vs shell_exec()

时间:2010-12-05 18:23:09

标签: php

当输出包含二进制数据时,函数passthru()很好,因为函数输出原始输出。但是,函数shell_exec()的文档没有说明返回的数据是否是二进制安全的(= raw)。

所以,我的问题是shell_exec()是否会返回原始输出?或者我是否需要使用ob_start()ob_get_contents()ob_end_clean()passthru()一起获取原始输出?

1 个答案:

答案 0 :(得分:1)

它返回一个字符串,其中数据写入标准输出。 PHP中的字符串是二进制安全的;它们可以包含\0个字符。

如果执行的命令导致写入这些字符,则此类字符将包含在shell_exec()的结果中。你用它做什么取决于你。

输出缓冲在这里无关紧要; shell_exec()不向客户端输出任何内容,它只返回一个字符串。