Reputation: 145
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
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
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
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