Я пытался использовать wscript.shell через COM-объекты с php для передачи некоторых команд cmd в библиотеку cURL (версия для DOS). вот что я использую для выполнения этой задачи:
function windExec($cmd,$mode=''){
// Setup the command to run from "run"
$cmdline = "cmd /C $cmd";
// set-up the output and mode
if ($mode=='FG'){
$outputfile = uniqid(time()) . ".txt";
$cmdline .= " > $outputfile";
$m = true;
}
else $m = false;
// Make a new instance of the COM object
$WshShell = new COM("WScript.Shell");
// Make the command window but dont show it.
$oExec = $WshShell->Run($cmdline, 0, $m);
if ($outputfile){
// Read the tmp file.
$retStr = file_get_contents($outputfile);
// Delete the temp_file.
unlink($outputfile);
}
else $retStr = "";
return $retStr;
}
теперь, когда я запускаю эту функцию, как:
windExec("\"C:/Documents and Settings/ermac/Desktop/my project/curl\" http://www.google.com/", 'FG');
curl не запускается, потому что есть проблема с путем. но когда я удаляю пробелы с пути, это прекрасно работает.
windExec("\"C:/curl\" http://www.google.com/", 'FG');
поэтому мой вопрос: как я могу избежать этих пробелов в командах wscript.shell?
Есть ли в любом случае, я могу это исправить?
заранее спасибо:)