PHP exec ImageMagick始终返回0

PHP exec ImageMagick始终返回0,php,imagemagick,exec,imagick,Php,Imagemagick,Exec,Imagick,我正在尝试让ImageMagick为我计算PDF文件中的页数。功能如下: <?php function countPdfPages($filepath) { $magick = "identify -format %n ".$filepath; exec($magick, $debug, $result); return $result; } ?> 但是,该函数始终返回0。我已经确认ImageMagick运行正常,所以这应该不是问题。我是否未正确使用ex

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

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

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

我打赌我在做些傻事,但我就是看不出来。有人能帮我往正确的方向推吗?谢谢

如中所述,
exec
通过第三个参数提供已执行命令的返回状态。值
0
表示它正常退出。听起来你应该用类似的东西

下面是从(编辑为使用
popen
)的示例3中提取的示例:



Pff,duh。又忽略了一些小事情,谢谢!但是,老实说,我对如何使用ImageMagick返回的值一无所知。你能帮我更进一步吗?非常感谢你!您可能希望在该手册页上显示类似于示例3的内容。我会把它加到我的答案里。奇怪。。。当我调用它并让它
返回$contents时,不返回任何内容。没有价值,没有错误,什么都没有。(是的,我正在运行PHP5。)有两件事需要尝试:使用“r”(而不是“rb”)模式和
pclose
而不是
fclose
。更多需要尝试的事情:将
2>&1
添加到命令行末尾(以防
identification
输出到stderr);替换向标准输出10k+字节的进程(以确定是否存在缓冲问题);打开
error_reporting(E_ALL)
,如
popen
手册页的示例2所示。
<?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
?>