【问题标题】:Pass binary data into PHP system() command将二进制数据传递给 PHP system() 命令
【发布时间】:2013-02-27 04:08:02
【问题描述】:

是否可以将二进制数据传递给system(),如下所示?

$contents = file_get_contents("http://somesite.com/image.jpg");
$out = system("{$contents} | convert - -fuzz 10% -trim jpeg:-");

当我进入终端并执行cat filename | convert - -fuzz 10% -trim jpeg:- 时,它会将二进制数据返回到STDOUT...但是当我echo()print_r() 上面的数据时,它总是为空。

【问题讨论】:

  • 尝试passthru而不是系统..
  • passthru 返回void 并自动回显到浏览器。不要认为那是正确的。
  • 啊,你是对的,我记得提到使用它来处理二进制数据......在提到它之前应该重新阅读文档:-)

标签: php imagemagick


【解决方案1】:
  1. 使用base64:

    system('echo ' . base64_encode($contents) . " | base64 -d | convert - -fuzz 10% -trim jpeg:-"); 
    
  2. 您可能会为此提出一个单独的问题

【讨论】:

  • 这就是为什么我
  • @Jordan Arseno:我敢肯定,从现在开始,这对你来说就是一个触发器:如果你有一个二进制数据,而底层命令不接受二进制数据,而只接受文本数据——那么就有一个签到考虑序列化
  • @Jordan Arseno:嗯,实际上是什么?
猜你喜欢
  • 2022-10-13
  • 2019-11-10
  • 1970-01-01
  • 2021-01-24
  • 1970-01-01
  • 2015-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多