http://blog.csdn.net/leinchu/article/details/8191067
标题有点儿夸张,
我(们,本来想用们的,还会去掉了)运行系统命令常常用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