-1

我正在尝试使用以下脚本来计算 pdf 文件中的 pdf 页数。

   $filename = $_ENV{'HOMEDIR'}."/www/path/to/pdf/file";
$cmd = "/usr/local/nf/bin/identify -density 12 -format '%p' '$filename' ";

$out = array();

exec($cmd,$out,$error);

foreach($out as $f=>$v)
{
    echo "$f = $v ";
}

但是我没有输出。我认为这是一个与路径相关的问题。如何在命令行命令中引用路径?请任何帮助指导!

谢谢拉胡尔

4

2 回答 2

0

您是否检查过 PHP 是否报告了任何错误?PHP 代码中是否出现任何错误?您是否尝试过检测您的代码以检测潜在问题(例如 print var_export(file_exists($filename), true);?您是否检查过 exec(...) 的返回值?exec() 设置的变量 $error 的内容...)?您是否验证了可执行文件 (identify) 的路径是否正确?对于网络服务器而言,它可能与您通过 ssh / telnet / 控制台访问系统时不同。您是否检查过 'identify' 是否可执行网络服务器 uid?您是否检查过网络服务器 uid 是否可以读取 pdf 文件?

于 2010-09-01T10:29:51.787 回答
0

首先,您应该确保 pdf 文件的路径存在,如下所示:

$filename = "...";

// Brute force, maybe you could use some other "nicer" error handling
if(!file_exists($filename)) die('File does not exist!');

然后,我会检查是否

  • PHP 具有执行 Imagemagick 命令的访问权限(对 Imagemagick 目录/可执行文件的访问权限)
  • 允许Imagemagick读取文件并写入指定路径(目录/文件访问权限)
  • 您的 Imagemagick 安装实际上可以识别 PDF 文件(我在本地机器(ImageMagick 6.1.7)上使用命令行尝试过,但 IM 因此错误而失败identify: Postscript delegate failed ...:) - 可能 Imagemagick 需要 Ghostscript 来处理 PDF 文件
于 2010-09-01T10:34:08.630 回答