2011-11-11 13 views
0

Windows 7でxamppを使用してプログラムを開発していますが、問題があります。正しいコマンドでPHPのexec()が動作しない

ImageMagickをexec()関数で起動しようとしています。

ここに私のコードが狙われています。

<?php 
    $command = 'convert '.$tempOverlay.' '.$tempBg.' -compose Overlay -composite '.$tempImage; 
    exec($command); 
    die($command); 
?> 

私は満たされた$コマンドを入力すると、右のフォルダに私のCMDに(変換の一時/ 100000231446889-overlay.jpg TEMP/100000231446889-bg.jpgがオーバーレイ-composite一時/ 100000231446889.jpgを-compose)その作品は完璧ですが、PHPで実行するとImageMagickの出力は得られません。

「Echo%CD%」を介して正しいフォルダで実行されたかどうかを確認しましたが、そのフォルダは正しいですか。

+0

なぜあなたはphp-imagickを使用していませんか? http://php.net/manual/en/book.imagick.php – danielrsmith

+0

"-compse Overlay"コマンドの機能を見つけることができませんでした –

+0

どのような$出力ですか?:exec($ command、$出力); print_r($出力); –

答えて

1

良いショットは相対パスを避けるでしょう。テストにはフルパスを使用します。 実際にはパスの問題のように見えます。

または、execコマンドを、PHPでキャッチしたcd + dirで増やしてください。

3

これは、imagemagickのdllバージョンをインストールしたときに発生します。静的バージョンをインストールする必要があります。それが起こると、imagemagickはphpで呼び出されたときに独自のdllを読み込むことができず、imagemagickのエラー出力はstdoutには流れません。それはstderrに行く。だからあなたはPHPからそれを見ることはできません。

+0

ありがとう、あなたは私の人生を救ってくれました。 –

関連する問題