将文件从命令行传递到PHP stdin

时间:2015-04-05 01:07:53

标签: php command-line inputstream image-compression

我在PHP中使用名为Intervention的图像处理库。它是一个很棒的库,但并不具备我需要的所有功能,特别是无损压缩。有一些命令行工具可以执行此操作,但我希望即时进行处理并将数据传递给浏览器,而不是将数据写入文件系统。

我想将文件数据拉到一个文件中直接送到PHP,但我不熟悉命令行知道如何“管道”数据到PHP或如何获取PHP读取数据。也许是这样的:

use Intervention\Image\ImageManagerStatic as Image;

$data = exec('optipng image.png >tophp');

$image_data = fopen('php://stdin', 'r');

$img = Image::make($image_data);

//...do more stuff...

echo $img->response();

我知道这显然不起作用,但有没有办法完成我想要做的事情?

1 个答案:

答案 0 :(得分:0)

对于能够将图像数据返回到stdout的任何命令行工具,您可以使用shell_exec捕获它。然后,您可以将该数据传递给干预。否则,您可以将数据保存到tmp文件,让PHP读取数据然后删除文件。