当输出包含二进制数据时,函数passthru()
很好,因为函数输出原始输出。但是,函数shell_exec()
的文档没有说明返回的数据是否是二进制安全的(= raw)。
所以,我的问题是shell_exec()
是否会返回原始输出?或者我是否需要使用ob_start()
,ob_get_contents()
和ob_end_clean()
与passthru()
一起获取原始输出?
答案 0 :(得分:1)
它返回一个字符串,其中数据写入标准输出。 PHP中的字符串是二进制安全的;它们可以包含\0
个字符。
如果执行的命令导致写入这些字符,则此类字符将包含在shell_exec()
的结果中。你用它做什么取决于你。
输出缓冲在这里无关紧要; shell_exec()
不向客户端输出任何内容,它只返回一个字符串。