PHP exec ImageMagick始终返回0
我正在尝试让ImageMagick为我计算PDF文件中的页数。功能如下: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
<?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
?>