php:从cli工具中获取stdout输出数据?

时间:2010-01-22 17:52:22

标签: php command-line stdout temporary-files

是否可以从php中的命令行工具中获取stdout输出数据?

示例:

我想将一个动态服务器创建的音频文件混合上传到客户端。 SOX工具让我混合输入mp3并将结果发送到stdout管道。 我可以抓住这个混音并立即上传,而不需要先将其保存为临时文件吗?

2 个答案:

答案 0 :(得分:0)

我认为您可以使用内存缓冲区来存储MP3混音,然后使用fsockopen打开要上传它的服务器的流,然后手动编写上传文件所需的标题。

为此,您必须重现上传文件时浏览器通常会构建的相同类型的请求。

以下是fsockopen的链接,用户评论包含有关如何执行此类任务的示例:http://php.net/manual/en/function.fsockopen.php

实现此目的的另一种方法是使用curl上传文件。我没有使用cURL,但这里有一个示例链接:http://www.akchauhan.com/how-upload-file-using-curl/

答案 1 :(得分:0)

有一个名为passthru()的函数,它会将二进制数据直接传递给客户端的浏览器。只需确保您的php脚本在传递数据之前放入正确的标头,例如内容类型等