Bir konsol program var, yavaş yavaş girdi parametreleri gerektirir. Ve o yanıt yazdı tam olarak bilmek gerekir.
Bunu proc_open kullanarak, basit olduğunu söylüyorlar. Ca. Ben o var ve bunu kullanmak. Ama tek sorun ben bir yerde okurken okuma prog kilitleniyor yayınladı ki ...
<?php
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("pipe", "w")
);
$process = proc_open('console.exe', $descriptorspec, $pipes);
if (is_resource($process)) {
stream_set_blocking($pipes[1], FALSE);
$out = '';
while (!feof($pipes[1])) {
$out .= fgets($pipes[1], 1024);
}
echo $out;
}
On line $out .= fgets ($ pipes [1], 1024);
yazısı hala mükemmel duruyor, ama neden? Prog çıktısı verir ve daha fazla girişi için bekler, ve biz ondan okumaya çalışıyorum areare Çünkü ...
I http://php.net/manual/es/function.proc-open.php gitti ve o istemci eDonkey'de ile çalıştı, çünkü bir insan olarak, son sürümü birinde okudum. Yani, o döngüsünü durdurur ">" 2 karakter aldığı durumda, iade okuyun.
I, ne yazık ki, bu tedavinin kendisi çıkış döner bazen prog olarak uygun değildir. Bu çekilme 2 kez bir araya gelecek çıkıyor> ve burada olmak nasıl, bilmiyorum ....
Fgetss için bir zaman aşımı var mı? Ya da nasıl düzeltebilirim?
================================================== Sorry, I used google to translate. Try to describe what I need, and where an error occurs.
Platform for execution of the script windows. Script is run in CLI mode.
The script must work with another console program. I run it:
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("pipe", "w")
);
$process = proc_open('otherConsoleProgramm.exe', $descriptorspec, $pipes);
The program displays the message, and prompts you to enter a command.
I need to copy the text, and depending on him to give her team.
But I can not do it, so when reading the text, php hangs on the line
$output = fgets($pipes[1], 1024);
Programı nasıl görüntüler metin alabilirim?
Ne yazık ki karakteri çıkış karakteri okumak, ve ">" karakteri için bekleyin, çıkış konsol programı olarak> sembolü bir kereden fazla görünebilir olamaz.