http://www.cnblogs.com/zdz8207/p/3765567.html
php中实现后台执行的方法:
ignore_user_abort(true); // 后台运行
set_time_limit(0); // 取消脚本运行时间的超时上限
后台运行的后面还要,set_time_limit(0); 除非在服务器上关闭这个程序,否则下面的代码将永远执行下去止到完成为止。
如果程序运行不超时,在没有执行结束前,程序不会自动结束的.
=========================================

//PHP 中如何 在客户端触发,然后在服务器端执行一个函数,页面关闭也继续执行。要先返回用户请求不要等待时。
 
 ob_end_clean();#清除之前的缓冲内容,这是必需的,如果之前的缓存不为空的话,里面可能有http头或者其它内容,导致后面的内容不能及时的输出
 header("Connection: close");//告诉浏览器,连接关闭了,这样浏览器就不用等待服务器的响应
 header("HTTP/1.1 200 OK"); //可以发送200状态码,以这些请求是成功的,要不然可能浏览器会重试,特别是有代理的情况下
 //return false;//加了这个下面的就不执行了,不加这个无法返回页面状态,浏览器一直在等待状态,可以关闭,但不是要的效果。
 //die(); 或 return ;也一样不执行下面的
 //rundata();
 //register_shutdown_function("rundata");
 //return  ;
 ob_start();#开始当前代码缓冲
  echo "running,,,,.";
 //下面输出http的一些头信息
 $size=ob_get_length();
 header("Content-Length: $size");
 ob_end_flush();#输出当前缓冲
 flush();#输出PHP缓冲
 
 #休眠PHP,也就是当前PHP代码的执行停止,1秒钟后PHP被唤醒,
 #PHP唤醒后,继续执行下面的代码,但这个时候上面代码的结果已经输出浏览器了,
 #也就是浏览器从HTTP头中知道了服务端关闭了连接,浏览器将不在等待服务器的响应,
 #反应给客户的就是页面不会显示处于加载状态中,换句话说用户可以关掉当前页面,或者关掉浏览器,
 #PHP唤醒后继续执行下面的代码,这也就实现了PHP后台执行的效果,
 #休眠的作用只是让php先把前面的输出作完,不要急于马上执行下面的代码,休息一下而已,也就是说下面的代码
 #执行的时候前面的输出应该到达浏览器了
 sleep(1);
 echo '这里的输出用户看不到,后台运行的';
 
 //下面代码的任何输出都不会输出给浏览器,因为http连接已经关了,
 //所以下面的代码的执行属于后台运行的

ignore_user_abort(true); // 后台运行,这个只是运行浏览器关闭,并不是直接就中止返回200状态。
 set_time_limit(0); // 取消脚本运行时间的超时上限
 rundata();

function rundata(){//do something}

=========================================
用ignore_user_abort函数实现php计划任务 
代码如下:
<?php 
ignore_user_abort(true); 
set_time_limit(0); 
while(1) { 
  $fp = fopen('time_task.txt',"a+"); 
  $str = date("Y-m-d h:i:s")."\n\r"; 
  fwrite($fp,$str); 
  fclose($fp); 
  sleep(300); //半小时执行一次 

?>
 =======================================
int ignore_user_abort ( [bool setting] ) 
这个函数的作用是指示服务器端在远程客户端关闭连接后是否继续执行下面的脚本。
setting 参数是一个可选参数。如设置为True,则表示如果用户停止脚本运行,仍然不影响脚本的运行(即:脚本将持续执行);如果设置为False,则表示当用户停止运行脚本程序时,脚本程序将停止运行。
下面这个例子,在用户关闭浏览器后,该脚本仍然后在服务器上继续执行:
ignore_user_abort(true); // 后台运行
set_time_limit(0); // 取消脚本运行时间的超时上限
do{
sleep(60); // 休眠1分钟
}while(true);
?>
除非在服务器上关闭这个程序,否则这断代码将永远执行下去。
-------------------------------------------------------------------------
ignore_user_abort(true); // 后台运行
set_time_limit(0); // 取消脚本运行时间的超时上限
echo 'start.';
sleep(1000);
echo 'end.';
?>
流风,飘然的风,本人博客网站:http://www.ssqhm.com
QQ群:Android技术交流群 253065556, python技术交流群:453879716 有兴趣的可以加入

php中怎么实现后台执行?的更多相关文章

  1. jenkins 登录远程机器并执行脚本,脚本中有后台执行的程序无法执行解决方法。

    jenkins构建shell执行配置 在远程shell脚本中,需要后台执行的命令需要以$( )括起来

  2. Linux中后台执行任务

    执行时, 可以在命令最后添加 & 使其后台执行, 但是其输出依然会显示, 而且其运行是和当前shell绑定的 如果脚本已经运行,  可以使用Ctrl-Z暂停, 然后使用 bg 让其转入后台, ...

  3. jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法

    jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...

  4. forever让nodejs应用后台执行

    nodejs一般是当成一条用户命令执行的,当用户断开客户连接,运用也就停了,很烦人.如何让nodejs应用当成服务,在后台执行呢? 最简单的办法: $ nohup node app.js & ...

  5. Linux后台执行脚本文件,nohup

    看运维人员执行nohup命令后,把程序放在后台执行,很高大上,就研究了一下,这个命令. nohup命令及其输出文件 nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么 ...

  6. android: 后台执行的定时任务

    Android 中的定时任务一般有两种实现方式,一种是使用 Java API 里提供的 Timer 类, 一种是使用 Android 的 Alarm 机制.这两种方式在多数情况下都能实现类似的效果,但 ...

  7. linux 如何让程序后台执行

    $ (./test.sh &)   $ setsid ./test.sh &   $ nohup ./test.sh &   具体的转自:http://digdeeply.or ...

  8. PHP后台执行

    php中实现后台执行的方法: ignore_user_abort(true); // 后台运行set_time_limit(0); // 取消脚本运行时间的超时上限后台运行的后面还要,set_time ...

  9. IOS 后台执行

    在IOS后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状态.在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除.应用程序提供特定的服务,用户可以请求后台执行时间 ...

随机推荐

  1. Python:变量与字符串

    变量   使用dos页面进行命令的输入如下变量,进行打印: 同时,相同两个变量书写在同一行,中间用英文的“;”隔开 python中区分大小写变量 字符串   简单的说,字符串就是双引号,单引号,或者三 ...

  2. java基础之开发环境搭建

    我们这里后续的所有课程都使用eclipse 来开发java代码,下面我们来搭建开发环境: 1.首先去java.sun.com去下载jdk,可以下载1.6 的版本2.安装JDK,最好安装在某个盘的跟目录 ...

  3. 【原创】LoadRunner Java Vuser开发环境配置指南

    1 编写目的 本文主要介绍Java运行环境的配置,同时通过编写HelloWorld程序,讲解在LoadRunner下如何开发简单的Java Vuser脚本.关于Java语言的深入学习,大家可以参考其他 ...

  4. 在iOS的XCode工程配置中为什么要用-all_load&-ObjC

    -ObjC 这个flag告诉链接器把库中定义的Objective-C类和Category都加载进来.这样编译之后的app会变大(因为加载了其他的objc代码进来).但是如果静态库中有类和categor ...

  5. tail -f logfile.log 一直监控某个文件,若该文件有改动,立即在屏幕上输出

    tail -f logfile.log 可以一直监控某个文件,只要文件有改动,就立即在屏幕上输出

  6. [转]freemaker格式化日期

    转至:http://wentao365.iteye.com/blog/2047234 1.格式化日期 ${updated?string("yyyy-MM-dd HH:mm:ss") ...

  7. 发布ASP(非.Net)网站

    1.安装IIS 2.设置网址.端口 3.设置文档(默认访问的文档,比如index.asp,index.htm等) 4.双击asp - 展开行为 - 启用父路径:true - 允许访问父目录 5.应用程 ...

  8. js关键字

    这已经是我第二次遇到这个问题了..关于关键字,用来做函数的命名,,,在高清上没问题,标清上秒死...页面都出不来...wtf...做个记录.. js关键字http://www.itxueyuan.or ...

  9. http://www.cnblogs.com/xdp-gacl/p/3622275.html

    http://www.cnblogs.com/xdp-gacl/p/3622275.html

  10. PTA 5-12 How Long Does It Take (25分)

    这题看不太懂题目啊~  参考的http://blog.csdn.net/qq_26437925/article/details/49420089?locationNum=6&fps=1 先放着 ...