我在我的C盘中安装了ghostscript和imagemagick,我在D盘中安装了我的wamp服务器,其中一个文件有代码
<?php exec('convert "sd.pdf[0]" -colorspace RGB -geometry 200 "document.png"');
?>
文件sd.pdf存在于我的程序所在的文件夹中。该程序没有错误,但也没有在该文件夹中生成图像。为什么? 附加问题: - 在php中使用Imagemagick和ghostscript会使程序变慢或变快吗?
答案 0 :(得分: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最大的贡献者之一聊天......
没有任何引号,rgb(255,255,255)WITH SPACES将导致 问题。类似地,十六进制值中的#可能会导致问题 引。如果在Windows上或使用a,则需要双引号 变量。否则,单引号或双引号适用于IM。但如果 你正在从PHP exec调用IM命令,然后如你所知,你 需要小心(或逃避它们)。