Php exec command not working on Windows, works on

2019-02-20 15:12发布

I am trying to execute the following command via PHP's exec function:

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  

It doesn't generate any output. But if I directly paste the command on the command line then it works...

Note: it takes a bit of time to complete when run directly on command line.

3条回答
Viruses.
2楼-- · 2019-02-20 15:50

I would suggest using shell_exec instead of exec function here. shell_exec executes command via appropriate shell (WIndows / Unix etc) and returns the complete output as a string to you.

查看更多
看我几分像从前
3楼-- · 2019-02-20 15:54

If your command is this:

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 escapes the backslashes, so the command that reaches the shell is ... D:\outputfile.pdf D:\input.jpg. You have to double-escape the backslashes: once for PHP and once for the 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");
查看更多
别忘想泡老子
4楼-- · 2019-02-20 16:10

for me the solution was to

run apache in a terminal window instead of a service.

see this thread: apache service php exec not working

查看更多
登录 后发表回答