是否可以从php中的命令行工具中获取stdout输出数据?
示例:
我想将一个动态服务器创建的音频文件混合上传到客户端。 SOX工具让我混合输入mp3并将结果发送到stdout管道。 我可以抓住这个混音并立即上传,而不需要先将其保存为临时文件吗?
答案 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脚本在传递数据之前放入正确的标头,例如内容类型等