2011-11-11 101 views
0

我在Windows 7上使用xampp来开发我的程序,但我遇到了问题。php exec()不正确的命令使用

我尝试通过exec()函数启动ImageMagick。

这是我的代码sniped。

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

如果我进入充满$命令(转换温度/ 100000231446889-overlay.jpg温度/ 100000231446889-bg.jpg -compose叠加 - 复合温度/ 100000231446889.jpg)在我cmd在正确的文件夹它的作品完美,但与它执行的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

一个不错的镜头会避免相对路径。使用完整路径进行测试。 它真的看起来像一个路径问题...

或增加执行命令与CD +迪尔与PHP捕获。

3

这可能会发生,当您安装dll版本的imagemagick。您需要安装静态版本。为什么发生这种情况,imagemagick无法通过php调用时加载自己的dll,并且imagemagick的错误输出不会输出到stdout。它发展到stderr。所以你不能从PHP中看到。

+0

谢谢你,你救了我的命。 –