PHP后台运行
转载自: http://23live.cn/web/php-ajax/
在很多时候,我们需要通过用户或其他方式触发php脚本的运行,而php执行的是批量任务或者是很耗时间的操作,这样我们就想客户端断开连接,而php的代码照样执行,起到异步操作的效果。
这里跟大家分享一段代码,可以完美的实现php后台异步运行的效果,而且不用客户端一直保持连接状态。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
ob_end_clean();//清除缓冲内容 header('HTTP/1.1 200 Ok'); header("Connection: close");//连接关闭 ob_start(); echo 'running'; $size=ob_get_length(); header("Content-Length: $size"); ob_end_flush();//输出缓冲 flush(); sleep(10); set_time_limit(0); $f=fopen('test.txt','a+'); fwrite($f,date()." ");//当然这一句可以写成循环,wp好像过滤了循环代码,为了保证可执行改为非循环的了 |
前两个header的作用是分别告诉浏览器获取网页成功,而且不用继续保持连接了,因为我们服务器已经主动要求close了。
最重要的还是这第三个header,告诉浏览器这个网页文件的长度。只有这样浏览器才会接收到相应长度的信息后中断连接,表现为浏览器已经把内容输出了,而且没有那种等待获取数据的状态。这个脚本不受Transfer-Encoding: chunked状态的影响。
sleep后面其实就是想在后台处理的代码,这个就看各种的应用了,此代码直接复制即可使用!
-------------我的签名档---------------------
年轻人,还需要多努力!
--------------------------------------------
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步