popen——php多程序利器
阿新 • • 發佈:2019-01-29
標題有點兒誇張,
我(們,本來想用們的,還會去掉了)執行系統命令常常用exec,system之類的,
但是今天發現了proc_open和popen,proc_open自稱比popen多一些功能,確實,proc_open有很多功能,可以與程式互動,
——但是,他是同步的,就是說一個程式沒有執行結束,不能執行下一個!就沒辦法非同步多程序了。
——但,popen是非同步的
上程式碼:
pro.php
<?php $process = array(); for($i=0;$i<5;$i++) { echo $i.' opening ... '.chr(10); $process[$i] = popen('php '.dirname(__FILE__).'/run.php', 'r'); sleep(1); } echo 'OK>>'.chr(10); sleep(3); for($i=0;$i<5;$i++) { $read = fread($process[$i], 64); echo $read; pclose($process[$i]); echo $i.' closed'.chr(10); sleep(1); }
run.php
<?php
while(1)
{
$echo =getmypid() .'->'. date("YmHis").chr(10);
echo $echo ;
system('echo '.$echo.'> logp');
sleep(5);
}
執行php pro.php