Re: Re: Problems with exec() on windows

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Tried all that - it'd work well until one of the arguments also had spaces
and thus had "" or '' encapsulating it - this weirdness is the reason for
this post.
Shawn, even the good old "C:\pathwi~1\gammu.exe" failed :-(

The only way I've gotten it to work was to get rid of the spaces in the
path/to/exe.

Luke.

On Thu, Mar 19, 2009 at 8:24 PM, bruce <bedouglas@xxxxxxxxxxxxx> wrote:

> hey...
>
> if you're going to deal with file/pathnames in windows/linux.. you're going
> to have to encapsulate them with "" or with '' ie double/single quotes...
>
>
>
> -----Original Message-----
> From: Kyohere Luke [mailto:luke@xxxxxxxxxxx]
> Sent: Thursday, March 19, 2009 10:18 AM
> To: Bastien Koert
> Cc: Shawn McKenzie; php-general@xxxxxxxxxxxxx
> Subject: Re:  Re: Problems with exec() on windows
>
>
> Eventually settled for getting rid of the spaces in the path. That worked.
> Thanks.
> Luke
>
> On Thu, Mar 19, 2009 at 8:06 PM, Bastien Koert <phpster@xxxxxxxxx> wrote:
>
> >
> >
> > On Thu, Mar 19, 2009 at 12:48 PM, Kyohere Luke <luke@xxxxxxxxxxx> wrote:
> >
> >> Thanks, but I tried this. Doesn't work because the path\to\gammu.exe has
> >> spaces in it....
> >> Haliphax, thanks for your comments. I tried escapeshellarg() to no end.
> >>
> >> I'm exploring your reply regarding proc_open, but how exactly does
> >> proc_open
> >> separate the arguments from the command?
> >>
> >> Unless i'm mistaken, data written to the process's stdin (for the other
> >> process) is not treated like an argument.
> >>
> >> If I add the arguments to the process name/path? I'm back to square one.
> >>
> >> Luke.
> >>
> >> On Thu, Mar 19, 2009 at 6:25 PM, Shawn McKenzie <nospam@xxxxxxxxxxxxx
> >> >wrote:
> >>
> >> > Kyohere Luke wrote:
> >> > > Hi,
> >> > > I'm trying to use exec to call gammu.exe and send sms on windows XP.
> >> > >
> >> > > This works from commandline:
> >> > >
> >> > > C:\path\to\gammu.exe 1 --sendsms EMS 200 -text "test1 test2"
> >> > >
> >> > > But if I run it through php like this:
> >> > >
> >> > > $command = "\"C:\path\to\gammu.exe\" --sendsms EMS 200 -text \"test1
> >> > > test2\"".;
> >> > > @exec($command, $response, $retval);
> >> > >
> >> > > This always fails, returns 1 and the response is empty.
> >> > >
> >> > > If the last argument is a string with no spaces, and the double
> quotes
> >> > were
> >> > > omitted, it works perfectly.
> >> > >
> >> > > If the double quotes are added around the string with no spaces, it
> >> fails
> >> > > again, which makes me believe that the problem is with the double
> >> quotes.
> >> > >
> >> > > I've used procmon and it shows that when the double quotes are added
> >> > around
> >> > > the last argument, gammu.exe is not even called at all.
> >> > >
> >> > > Problem is that the double quotes are required by gammu to send an
> sms
> >> > with
> >> > > spaces in it.
> >> > >
> >> > > Any ideas? :-(
> >> > >
> >> > > Luke
> >> > >
> >> >
> >> > Why not try:
> >> >
> >> > $command = 'C:\path\to\gammu.exe --sendsms EMS 200 -text "test1
> test2"';
> >> >
> >> > --
> >> > Thanks!
> >> > -Shawn
> >> > http://www.spidean.com
> >> >
> >> > --
> >> > PHP General Mailing List (http://www.php.net/)
> >> > To unsubscribe, visit: http://www.php.net/unsub.php
> >> >
> >> >
> >>
> >
> > try double slashes for the path and wrap the pathin quotes if there are
> > spaces in it. Or if possible get rid of the spaces in the folder names
> >
> > --
> >
> > Bastien
> >
> > Cat, the other other white meat
> >
>
>

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux