1

Cドライブにghostscriptとimagemagickがインストールされており、Dドライブにwampサーバーがあり、1つのファイルにコードがあります

<?php exec('convert "sd.pdf[0]" -colorspace RGB -geometry 200 "document.png"'); 
?>

ファイル sd.pdf は、私のプログラムがあるフォルダーに存在します。このプログラムはエラーを出していませんが、そのフォルダーに画像を作成していません。なぜですか? 追加の質問:-PHP で Imagemagick と Ghostscript を使用すると、プログラムが遅くなったり速くなったりしますか?

4

1 に答える 1

0

二重引用符を削除またはエスケープする必要があります。Windowsでは正しく機能しません。詳細については、execute()メソッドをご覧ください:https ://github.com/webarto/instagraph/blob/master/instagraph.php#L55

public function execute($command)
{
    # remove newlines and convert single quotes to double to prevent errors
    $command = str_replace(array("\n", "'"), array('', '"'), $command);
    # replace multiple spaces with one
    $command = preg_replace('#(\s){2,}#is', ' ', $command);
    # escape shell metacharacters
    $command = escapeshellcmd($command);
    # execute convert program
    exec($command);
}

IMの最大の貢献者の1人とチャット...

引用符がない場合、rgb(255、255、255)WITHSPACESは問題を引き起こします。同様に、16進値の#は、引用符で囲まれていない場合、問題を引き起こす可能性があります。Windowsの場合、または変数を使用する場合は、二重引用符が必要です。それ以外の場合、IMには一重引用符または二重引用符で十分です。ただし、PHP execからIMコマンドを呼び出す場合は、ご存知のように、注意する必要があります(またはエスケープする必要があります)。

于 2012-05-28T15:29:08.183 に答える