浏览器运行CMD命令,并且实时显示执行结果

本文介绍了一种在PHP中实现长时任务无阻塞执行的方法,通过创建worker函数,利用set_time_limit避免超时,ob_implicit_flush实现实时输出,header设置禁止缓冲,确保耗时操作如ping命令或后台服务的执行结果能即时反馈到浏览器,适用于需要监控运行状态的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:
1)一些耗时的处理操作需要在界面上浏览器上显示执行结果;
2)一些后台服务,需要在浏览器上监控运行结果;
直接上代码:

<?php
function createWorker($func){
	set_time_limit(0);
	ob_end_clean();
	ob_implicit_flush();//缓冲区实时输出
	header('X-Accel-Buffering: no'); // 关键是加了这一行	
	$func();
}

//思路一
createWorker(function(){
	system("ping 127.0.0.1 -t");
});

 
/*思路二 :
 createWorker(function(){
	 exec("/home/web/a.sh >> /home/web/a.log 2>&1 &");
	 while(1){
		 $log = file_get_contents('/home/web/a.log');
		   echo "最新一行";
	 }
});
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值