PHP exec ImageMagick总是返回0

时间:2012-05-11 12:08:33

标签: php imagemagick exec imagick

我正在尝试让ImageMagick为我计算PDF文件中的页数。功能如下:

<?php
function countPdfPages($filepath)
{
    $magick = "identify -format %n ".$filepath;
    exec($magick, $debug, $result);
    return $result;
}
?>

但是,该函数始终返回0。我已经验证了ImageMagick正常运行,所以这应该不是问题。我没有正确使用exec()吗?我应该以另一种方式检索输出吗?我也尝试使用$debug,但奇怪的是,这并没有给我任何输出。

我打赌我在这里做了些蠢事,但我只是没有看到它。任何人都可以给我一个正确的方向吗?谢谢!

1 个答案:

答案 0 :(得分:1)

the man page所述,exec通过第三个参数提供已执行命令的返回状态。值0表示它正常退出。听起来你应该使用像popen这样的东西。

以下是fread man page的示例#3中提取的示例(已编辑为使用popen):

<?php
// For PHP 5 and up
$handle = popen("identify -format %n myfile.jpg", "r");
$contents = stream_get_contents($handle);
pclose($handle);
// $contents is the output of the 'identify' process
?>