Php, konsol programı ile çalışır.

0 Cevap php

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.

0 Cevap