shell_exec,imagemagick转换似乎不像美元

时间:2012-01-20 22:57:47

标签: php imagemagick

这有效:

shell_exec('convert Q39.pdf Q39.png');

然而这不是:

$id = 39; shell_exec('convert Q$id.pdf Q$id.png');

在另一个带有另一个命令(pdflatex)的shell_exec中,它可以工作。不知何故,$ id被忽略,​​因此找不到文件,所以通过这样做:

$id = 39; shell_exec('convert Q39.pdf Q$id.png');

我得到一个名为Q.png的正确文件。

我有什么想法可以解决这个问题吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

要在字符串文字中使用变量,您必须使用双引号:

$id = 39; shell_exec("convert Q$id.pdf Q$id.png");

或连接它们:

$id = 39; shell_exec('convert Q'.$id.'.pdf Q'.$id.'.png');

我建议使用第二种方法,因为它在使用语法高亮时更具可读性。

或者甚至更好,确保它始终是小数:

$id = 39; shell_exec(sprintf('convert Q%1$d.pdf Q%1$d.png', $id));

这也将显示用于构建命令的变量。