RE: Re: Problems with exec() on windows

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

 



when dealing with windows.. or any file/pathname.. you can't simply
quote/double quote the name using the "~" symbol as well..

haven't done it for awhile.. but i believe you need to explode/derive the
complete path/filename and then quote/double quote it for use by the app...



-----Original Message-----
From: luke@xxxxxxxxxxx [mailto:luke@xxxxxxxxxxx]On Behalf Of Kyohere
Luke
Sent: Thursday, March 19, 2009 11:48 PM
To: Shawn McKenzie
Cc: php-general@xxxxxxxxxxxxx
Subject: Re:  Re: Problems with exec() on windows


You might have something there - never really thought about how windows
forms the 8.3 names... & not many resources online about it ...

The actual path is "c:\Program File\Gammu 1.23.91\bin\gammu.exe"
I'd used "c:\Progra~1\Gammu~1\bin\gammu.exe"

Luke

On Thu, Mar 19, 2009 at 8:57 PM, Shawn McKenzie <nospam@xxxxxxxxxxxxx>wrote:

> Kyohere Luke wrote:
> > 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 :-(
>
> Well, you didn't do it properly then.  What is the actual path?
>
> >
> > 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
> >>>
> >>
> >
>
>
> --
> Thanks!
> -Shawn
> http://www.spidean.com
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[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