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