-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)へのパスが正しいことを確認しましたか?Webサーバーでは、ssh / telnet/consoleを介してシステムにアクセスする場合とは異なる場合があります。「identify」が実行可能かどうかを確認しましたか。 Webサーバーのuid?pdfファイルがWebサーバーのuidで読み取り可能かどうかを確認しましたか?

于 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 dir/executables へのアクセス権)
  • Imagemagick は、ファイルの読み取りと指定されたパスへの書き込みが許可されています (ディレクトリ/ファイル アクセス権)
  • Imagemagick のインストールでは実際に PDF ファイルを識別できます (ローカル マシン ( ImageMagick 6.1.7) でコマンド ラインを使用して試してみたところ、IM はこのエラーで失敗しました: identify: Postscript delegate failed ...) - おそらく Imagemagick が PDF ファイルを操作するには Ghostscript が必要です。
于 2010-09-01T10:34:08.630 に答える