/* 中断并返回数据,后面程序继续执行,避免用户等待(immediate) * 可用于返回值后,继续执行程序,但程序占得所以自由没有释放,一致占用,务必注意,最好给单独脚本执行 * @param string|array $data 字符串或数组,数组将被转换成json字符串 * @param intval $set_time_limit 设置后面程序最大执行时间,0不限制,但web页面设置最大执行时间不一定靠谱,可改用脚本或单独开子进程 * @return */ function imme_return($data ='',$set_time_limit=20) { $str=is_string($data) ? $data : json_encode($data); echo $str; if(function_exists('fastcgi_finish_request')){ //Nginx使用 fastcgi_finish_request(); //后面输出客户端获取不到 }else { //apache 使用 $size = ob_get_length(); header("Content-length: $size"); header('Connection:close'); ob_end_flush(); //ob_flush(); //加了没效果 flush(); } ignore_user_abort(true); set_time_limit($set_time_limit); return true; }
imme_return($data ,10); //立即返回字符串,后面程序最大执行时间10s
//执行其它无需用户等待的程序
//写入数据库,redis,发送通知…
//接口//
标签:set,return,继续执行,后面,limit,time,封装,php,data From: https://www.cnblogs.com/gwhm/p/17845675.html