是否可以从 php 中的命令行工具中获取 stdout 输出数据?
例子:
我想将服务器创建的动态混合音频文件上传到客户端。SOX 工具让我可以混合输入的 mp3 并将结果发送到标准输出管道。我可以抓住这个组合并立即上传它,而不需要先将它保存为临时文件吗?
是否可以从 php 中的命令行工具中获取 stdout 输出数据?
例子:
我想将服务器创建的动态混合音频文件上传到客户端。SOX 工具让我可以混合输入的 mp3 并将结果发送到标准输出管道。我可以抓住这个组合并立即上传它,而不需要先将它保存为临时文件吗?
我认为你可以做的是使用内存缓冲区来存储 MP3 混合,然后使用 fsockopen 打开一个流到你要上传的服务器,然后手动编写上传文件所需的标题。
为此,您必须重现浏览器在上传文件时通常会构造的相同类型的请求。
这是 fsockopen 的链接,用户评论包含有关如何执行此类任务的示例:http: //php.net/manual/en/function.fsockopen.php
实现此目的的另一种方法是使用 curl 上传文件。我没有为此使用 cURL,但这里有一个示例链接:http ://www.akchauhan.com/how-upload-file-using-curl/
有一个名为 passthru() 的函数,它将二进制数据直接传递给客户端的浏览器。只需确保您的 php 脚本在传递数据之前放置正确的标头,例如内容类型等。