Salman
Salman

Reputation: 145

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.

Upvotes: 1

Views: 13503

Answers (3)

swisswiss
swisswiss

Reputation: 345

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

Upvotes: 0

JJJ
JJJ

Reputation: 33163

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

Upvotes: 4

anubhava
anubhava

Reputation: 784938

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.

Upvotes: 5

Related Questions