php exec()无法使用正确的命令

时间:2011-11-11 18:45:42

标签: php imagemagick exec xampp

我在Windows 7上使用xampp来开发我的程序,但我遇到了问题。

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

这是我的代码狙击。

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

如果我在右边的cmd中输入填充$命令( convert temp / 100000231446889-overlay.jpg temp / 100000231446889-bg.jpg -compose Overlay -composite temp / 100000231446889.jpg )文件夹,它的工作完美,但由它执行的PHP我得不到ImageMagick的输出。

我检查了它是否通过'Echo%CD%'在正确的文件夹中执行,但是它是正确的文件夹。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

或者使用PHP抓住cd + dir增加exec命令。