Tema: proc_open velniava
Autorius: flegmatoid
Data: 2010-02-23 22:48:19
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=windows-1257" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18876">
<STYLE></STYLE>
</HEAD>
<BODY><SPAN class=normal><SPAN class=normal>
<DIV><FONT size=2 face=Arial>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.<BR><BR>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.<BR><BR>bandau 
suvokti - kokia tuomet proc_open funkcijos prasme?</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT></SPAN></SPAN>&nbsp;</DIV>
<DIV><SPAN class=normal><FONT face=Arial><SPAN class=normal><CODE><FONT 
color=#000000><FONT size=2>&nbsp;</FONT><FONT color=#0000bb size=2>&lt;?php 
<BR>$descriptorspec&nbsp;</FONT><FONT size=2><FONT color=#007700>=&nbsp;array( 
<BR>&nbsp;&nbsp;&nbsp;</FONT><FONT color=#0000bb>0&nbsp;</FONT><FONT 
color=#007700>=&gt;&nbsp;array(</FONT><FONT color=#dd0000>"pipe"</FONT><FONT 
color=#007700>,&nbsp;</FONT><FONT color=#dd0000>"r"</FONT></FONT><FONT 
size=2><FONT color=#007700>), <BR>&nbsp;&nbsp;&nbsp;</FONT><FONT 
color=#0000bb>1&nbsp;</FONT><FONT color=#007700>=&gt;&nbsp;array(</FONT><FONT 
color=#dd0000>"pipe"</FONT><FONT color=#007700>,&nbsp;</FONT><FONT 
color=#dd0000>"w"</FONT></FONT><FONT size=2><FONT color=#007700>), 
<BR>&nbsp;&nbsp;&nbsp;</FONT><FONT color=#0000bb>2&nbsp;</FONT><FONT 
color=#007700>=&gt;&nbsp;array(</FONT><FONT color=#dd0000>"pipe"</FONT><FONT 
color=#007700>,&nbsp;</FONT><FONT color=#dd0000>"r"</FONT></FONT><FONT 
size=2><FONT color=#007700>)&nbsp; <BR>); <BR><BR></FONT><FONT 
color=#0000bb>$process&nbsp;</FONT><FONT color=#007700>=&nbsp;</FONT><FONT 
color=#0000bb>proc_open</FONT><FONT color=#007700>(</FONT><FONT 
color=#dd0000>'mysql&nbsp;-u&nbsp;root'</FONT><FONT 
color=#007700>,&nbsp;</FONT><FONT color=#0000bb>$descriptorspec</FONT><FONT 
color=#007700>,&nbsp;</FONT><FONT color=#0000bb>$pipes</FONT></FONT><FONT 
size=2><FONT color=#007700>); <BR><BR>if&nbsp;(</FONT><FONT 
color=#0000bb>is_resource</FONT><FONT color=#007700>(</FONT><FONT 
color=#0000bb>$process</FONT></FONT><FONT color=#007700 size=2>))&nbsp;{ 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT size=2><FONT 
color=#ff8000>//stream_set_blocking($pipes[0],0); 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;//stream_set_blocking($pipes[1],0); 
<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT color=#0000bb>fwrite</FONT><FONT 
color=#007700>(</FONT><FONT color=#0000bb>$pipes</FONT><FONT 
color=#007700>[</FONT><FONT color=#0000bb>0</FONT><FONT 
color=#007700>],&nbsp;</FONT><FONT 
color=#dd0000>"show&nbsp;databases;\n"</FONT></FONT><FONT size=2><FONT 
color=#007700>); <BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT 
color=#0000bb>sleep</FONT><FONT color=#007700>(</FONT><FONT 
color=#0000bb>1</FONT></FONT><FONT color=#007700 size=2>); 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT size=2><FONT 
color=#ff8000>//fclose($pipes[0]);&nbsp;&nbsp;-&nbsp;veikia&nbsp;tik&nbsp;atkomentavus&nbsp;sia&nbsp;eilute. 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT color=#0000bb>$rez</FONT><FONT 
color=#007700>=</FONT><FONT color=#0000bb>stream_get_contents</FONT><FONT 
color=#007700>(</FONT><FONT color=#0000bb>$pipes</FONT><FONT 
color=#007700>[</FONT><FONT color=#0000bb>1</FONT></FONT><FONT size=2><FONT 
color=#007700>]); <BR>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</FONT><FONT 
color=#dd0000>"[$rez]"</FONT></FONT><FONT color=#007700 size=2>; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT size=2><FONT 
color=#ff8000>//fclose($pipes[1]); <BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT 
color=#0000bb>proc_close</FONT><FONT color=#007700>(</FONT><FONT 
color=#0000bb>$process</FONT></FONT><FONT size=2><FONT color=#007700>); <BR>} 
<BR></FONT><FONT color=#0000bb>?&gt;</FONT> 
</FONT></FONT></CODE></SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=normal><FONT face=Arial><SPAN class=normal><CODE><FONT 
color=#0000bb size=2></FONT></CODE></SPAN><BR><FONT size=2>isbandyta ir po fbsd 
ir po windoze.<BR>php 5.2.12 ir 5.3.0<BR><BR>dekui uz 
mintis</FONT></FONT></SPAN></DIV></BODY></HTML>