【发布时间】:2010-03-14 18:54:22
【问题描述】:
我想使用 PHP 将 pdf 文件转换为图像,但我无法使用该命令。 PHP 返回一个 4。我不知道那是什么。
我正在使用下一个代码:
$tmp = system("convert -version", $value);
var_dump($value);
有人出主意吗?
【问题讨论】:
我想使用 PHP 将 pdf 文件转换为图像,但我无法使用该命令。 PHP 返回一个 4。我不知道那是什么。
我正在使用下一个代码:
$tmp = system("convert -version", $value);
var_dump($value);
有人出主意吗?
【问题讨论】:
试试
exec("convert -version 2>&1", $out, $ret);
print_r($out);
它应该告诉你出了什么问题
【讨论】:
看起来 -version 标志告诉转换软件(看起来像 imagemagick)以该软件的主要版本号进行响应。看起来它工作正常。您可能需要将正确的标志传递给它才能正常运行。我建议阅读文档以了解转换 PDF 需要哪些标志。
【讨论】:
4 不同 - 这很可能是系统返回码。
var_dump($temp) 说什么?那应该更有启发性。
尝试使用 PHP 中的一些其他系统函数以获得更详细的输出。
exec("convert -version", $output, $value);
print_r($output);
上面的 exec 函数会将 $output 参数中命令的所有输出作为数组提供给您。
返回状态(将保存在上述 exec 调用或原始代码中的 system 调用中的 $value 参数中)为您提供返回值执行的shell命令。
一般来说,这将为零表示成功,非零整数返回值表示不同类型的错误。因此,您拥有的命令似乎有问题(可能无法识别 -version:通常您需要在长手命令行选项之前使用双连字符)。
顺便说一句,您可能还会发现 passthru 功能更适合您的需要。如果您的转换程序生成与转换后的 PDF 对应的二进制图像数据,您可以使用 passthru 将该图像数据直接发送到浏览器(当然是在设置适当的标题之后)
【讨论】:
err... 你不是在转储错误的结果吗? (我会 var dump $tmp,而不是 $value。)
我认为代码应该是:
$tmp = system("convert -version", $value);
var_dump($tmp);
【讨论】: