Re: Problems with exec() on windows

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

 



On Thu, Mar 19, 2009 at 9:19 AM, Kyohere Luke <pr0f3t@xxxxxxxxx> 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.

I'm not sure if it will help, but the escapeshellarg() function looks
like it might handle all that tricky slash-and-quote-adding for you:

http://php.net/escapeshellarg

Other than that, perhaps proc_open() would do what you need it to by
completely separating the command's arguments from itself.

http://php.net/proc_open

HTH,


-- 
// Todd

-- 
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