note 79665 added to function.proc-open

From: Date: Fri, 07 Dec 2007 06:52:35 +0000
Subject: note 79665 added to function.proc-open
Groups: php.notes 
Request: Send a blank email to php-notes+get-132919@lists.php.net to get a copy of this message
STDIN STDOUT example test.php <?php $descriptorspec = array( 0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "r") ); $process = proc_open('php test_gen.php', $descriptorspec, $pipes, null, null); //run test_gen.php echo ("Start process:\n"); if (is_resource($process)) { fwrite($pipes[0], "start\n"); // send start echo ("\n\nStart ....".fgets($pipes[1],4096)); //get answer fwrite($pipes[0], "get\n"); // send get echo ("Get: ".fgets($pipes[1],4096)); //get answer fwrite($pipes[0], "stop\n"); //send stop echo ("\n\nStop ....".fgets($pipes[1],4096)); //get answer fclose($pipes[0]); fclose($pipes[1]); fclose($pipes[2]); $return_value = proc_close($process); //stop test_gen.php echo ("Returned:".$return_value."\n"); } ?> test_gen.php <?php $keys=0; function play_stop() { global $keys; $stdin_stat_arr=fstat(STDIN); if($stdin_stat_arr[size]!=0) { $val_in=fread(STDIN,4096); switch($val_in) { case "start\n": echo "Started\n"; return false; break; case "stop\n": echo "Stopped\n"; $keys=0; return false; break; case "pause\n": echo "Paused\n"; return false; break; case "get\n": echo ($keys."\n"); return true; break; default: echo("Передан не верный параметр: ".$val_in."\n"); return true; exit(); } }else{return true;} } while(true) { while(play_stop()){usleep(1000);} while(play_stop()){$keys++;usleep(10);} } ?> ---- Server IP: 194.145.210.3 Probable Submitter: 91.144.167.159 ---- Manual Page -- http://www.php.net/manual/en/function.proc-open.php Edit -- https://master.php.net/note/edit/79665 Del: integrated -- https://master.php.net/note/delete/79665/integrated Del: useless -- https://master.php.net/note/delete/79665/useless Del: bad code -- https://master.php.net/note/delete/79665/bad+code Del: spam -- https://master.php.net/note/delete/79665/spam Del: non-english -- https://master.php.net/note/delete/79665/non-english Del: in docs -- https://master.php.net/note/delete/79665/in+docs Del: other reasons-- https://master.php.net/note/delete/79665 Reject -- https://master.php.net/note/reject/79665 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#132919) next »