Php exec命令无法在Windows上运行,可在命令行上运行

时间:2012-01-16 13:29:39

标签: php command-line

我试图通过PHP的exec函数执行以下命令:

D:\\pstill -F a4 -2 -c -c -c -c -g -i -t -K -d 700 -a 4 -m XimgAsCMYK -m Xspot -m Xoverprint -o D:\\outputfile.pdf D:\\new.jpg  

它不会产生任何输出。但是,如果我直接在命令行上粘贴命令,那么它可以工作......

注意:直接在命令行上运行需要一些时间。

3 个答案:

答案 0 :(得分:5)

我建议在这里使用shell_exec而不是exec函数。 shell_exec通过适当的shell(WIndows / Unix等)执行命令,并将完整的输出作为字符串返回给您。

答案 1 :(得分:4)

如果您的命令是这样的:

exec("pstill -F a4 -2 -c -c -c -c -g -i -t -K -d 700 -a 4 -m XimgAsCMYK -m Xspot -m Xoverprint -o D:\\outputfile.pdf D:\\input.jpg");

PHP转义反斜杠,因此到达shell的命令是... D:\outputfile.pdf D:\input.jpg。你必须双重转义反斜杠:一次用于PHP,一次用于shell。

exec("pstill -F a4 -2 -c -c -c -c -g -i -t -K -d 700 -a 4 -m XimgAsCMYK -m Xspot -m Xoverprint -o D:\\\\outputfile.pdf D:\\\\input.jpg");

答案 2 :(得分:0)

对我而言,解决方案是

在终端窗口而不是服务中运行apache。

看到这个帖子: apache service php exec not working