【问题标题】:php: Grabbing stdout output data from cli tools?php:从 cli 工具中获取标准输出输出数据?
【发布时间】:2010-01-22 17:52:21
【问题描述】:

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

例子:

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

【问题讨论】:

    标签: php command-line stdout temporary-files


    【解决方案1】:

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

    【讨论】:

    • 谢谢你,暗星!这正是我需要的!供任何人参考,这是使用 Imagemagick 输出调整大小图像的示例: (请注意必须添加标题!)
    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-25
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多