这有效:
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的正确文件。
我有什么想法可以解决这个问题吗?
提前致谢。
答案 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));
这也将显示用于构建命令的变量。