Ben böyle bir yöntemi kullanarak birden çok bağımsız ve mutlak yolları ile Windows üzerinde PHP bir programı çalıştırmak için çalışıyorum:
<?php
$FLACPATH = str_replace(" ","\ ",realpath("../../encoders/flac.exe"));
$LAMEPATH = realpath("../../encoders/lame.exe");
$FILEPATH = realpath("../../encoders/01.flac");
function my_exec($cmd, $input='')
{
echo $cmd."<br/><br/>";
$proc=proc_open($cmd, array(0=>array('pipe', 'r'), 1=>array('pipe', 'w'), 2=>array('pipe', 'w')), $pipes);
fwrite($pipes[0], $input);fclose($pipes[0]);
$stdout=stream_get_contents($pipes[1]);fclose($pipes[1]);
$stderr=stream_get_contents($pipes[2]);fclose($pipes[2]);
$rtn=proc_close($proc);
return array('stdout'=>$stdout,
'stderr'=>$stderr,
'return'=>$rtn
);
}
var_export(my_exec("\"$FLACPATH\" -t \"$FILEPATH\""));
?>
In a Windows command prompt, this call works perfectly and looks like this: "C:\Users\James\Documents\My Dropbox\Code\Program\bin\Debug\encoders\flac.exe" -t "C:\Users\James\Documents\My Dropbox\Code\Program\bin\Debug\encoders\01.flac"
Ben sadece program yürütülürken ediyorsam Örneğin ben, bir mutlak yol kullanıyorum bu PHP çalışıyor. Ben bir kaynak hedef benim argümanlar başka mutlak yolunu eklerseniz Ancak, çağrı başarısız olur. PHP alanlarda çağrıyı kırmak yapma, EXE benim orijinal çağrısı etrafında tırnak kaldırır gibi ben söyleyebilirim ne gelen, görünüyor.
Benim PHP komut dosyası olarak aynı dizinde benim EXE dosyaları istemiyorum çünkü ben mutlak yolları kullanıyorum. Ben yolları biraz göreceli olması gerekir, çünkü ben realpath ($ str) kullanın.
PHP) (benim exec dışında benim tırnak sıyırma neden bilen var mı?? Teşekkürler!