第一个代码是兼容所有浏览器,刷新输出缓冲,有echo等输出就立马输出,第二个代码是用户关闭浏览器代码依然执行的代码,不是很多人局限于自己没有服务器,没有办法建立事物自动的备份数据吗,这个也不失为一种解决方式。set_time_limit(0)和ignore_user_abort(true)函数的妙用。
首先是第一个代码
1 2 3 4 5 6 7 8 9 10 11 |
<?php set_time_limit(0); print str_repeat(" ", 4096); for($i=0;$i<60;$i++){ echo $i.'<br />'; ob_flush(); flush(); sleep(1); } ob_end_flush(); ?> |
相当的短小精悍啊,第一行是设置php的最大执行时间,第二行是因为很多浏览器会有4096字节的缓存,这里是填满缓存,ob_flush和flush都是刷新输出缓存,因为flush() 函数不会对服务器或客户端浏览器的缓存模式产生影响。因此,必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。 ob_end_flush就是输出,并关闭输出缓冲!我在做一些等待功能的时候我觉得可以用到。
第二段代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php set_time_limit(0); ignore_user_abort(true); $dbHost = 'localhost';//服务器 $dbUser = 'root';//用户名 $dbPwd = '123456';//密码 $dbdate = 'ci'; $con = mysql_connect($dbHost,$dbUser,$dbPwd); if(empty($con)){ echo '连接服务器失败'; } mysql_query("SET character_set_connection=utf8, character_set_results=utf8, character_set_client=binary",$con); $conn = mysql_select_db($dbdate,$con); if(empty($conn)){ echo '选择数据库失败'; } $sql = "insert into `admin`(`pid`,`path`,`name`)values('1','0','a')"; for($i=0;$i<500;$i++){ mysql_query($sql); sleep(2); } ?> |
这个代码当然要你们配置成自己的数据库下面是写了一个插入语句,你可以随便改成一个插入语句,访问这个页面,然后关闭浏览器,打开你的数据库,刷新去看,数据记录还在不断的增加,神不神奇。其实这是将 set_time_limit(0); ignore_user_abort(true);做了结合,后一个是设置在关闭浏览器的时候继续执行,那么我们就可以利填满加sleep函数,从而实行一个不断执行的方法,可以用来备份数据库,或定期的清空一个目录等待都可以,但是这个函数一旦运行就只能通过服务器结束进程,所以给他的循环最好还是不要是无限循环,挺有意思吧。是我自己总结的奥!
本文链接:http://www.521php.com/archives/527/
程序本天成,妙手偶得之!我们只是代码的搬运工!
转载请注明:http://www.521php.com/archives/527/