Kol 0 (ar, pvz. SSH atveju tai gal būtų 3) kanalas neuždarytas - programa laukia ir nieko nevykdo. Tai ko galima, tokiu atveju, tikėtis iš jos grįžtant? > rašome - uždarome STDIN < skaitome iš STDOUT / STDERR ... - įvertiname duomenis - jei reikia - vėl atidarome STDIN > rašome dar ką nors -- JB 2010.02.23 22:48, flegmatoid rašė: > sveiki - reikia bi-directional rysio tarp konkretaus proceso (pvz ssh, ftp, mysql) ir php dalies, tam, kad suserti eile komandu, po kiekvienos nuskaitant konsoles output'a. > > Kas idomiausia - viskas kaip ir veikia, taciau stdout'a gaunu tik uzdares stdin'a (pipe[0]) :\ - gugleje rodo keleta panasiu klausimu - tik, deja, be atsakymu. > > bandau suvokti - kokia tuomet proc_open funkcijos prasme? > > <?php > $descriptorspec = array( > 0 => array("pipe", "r"), > 1 => array("pipe", "w"), > 2 => array("pipe", "r") > ); > > $process = proc_open('mysql -u root', $descriptorspec, $pipes); > > if (is_resource($process)) { > //stream_set_blocking($pipes[0],0); > //stream_set_blocking($pipes[1],0); > > fwrite($pipes[0], "show databases;\n"); > sleep(1); > //fclose($pipes[0]); - veikia tik atkomentavus sia eilute. > $rez=stream_get_contents($pipes[1]); > echo "[$rez]"; > //fclose($pipes[1]); > proc_close($process); > } > ?> > > isbandyta ir po fbsd ir po windoze. > php 5.2.12 ir 5.3.0 > > dekui uz mintis