简体   繁体   中英

Php exec command not working on Windows, works on command line

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.

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.

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");

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM