PHP中利用sleep函数实现定时执行功能实现代码
在一些竞猜的网站中,如果我们需要做一个定时执行的功能,比如有一道题,在十秒之内要完成,否则显示“您已超时”,如果完成,则跳转到下一道题上面,而这中间有一个十秒的停顿,这样的功能是怎样实现的呢?
在PHP中,有一个sleep函数,大概意思是程序执行遇到sleep函数时暂停N秒后继续往下执行。如sleep(10)意思就是程序自上往下执行,遇到sleep(10)语句后暂停十秒,然后继续往下执行。函数括号内的参数是一个数值,代表暂停时间值,单位秒。请看下面一段代码:
<?php // current time echo date('h:i:s') . "\n"; // sleep for 10 seconds sleep(10); // wake up ! echo date('h:i:s') . "\n"; ?>
以上程序执行结果是:
05:31:23
05:31:33
可能某些童鞋做实例的时候会说怎么我的程序执行出错,提示超时。出现这个问题不要慌,这是PHP默认页面执行时间导致的,在PHP中默认执行页面时间是三十秒钟,这对于一般程序够用了。但如果你要做类似定时执行功能就必须再头部声明设置下执行时间set_time_limit(0)。0是代表不限时,单位是秒。
如果执行时间超过30秒,再执行操作记得要再次连接MYSQL,否则执行无效!!!原因是执行时间过长以后数据库连接可能断开问题,也就不能读到数据库信息!
去操作一下吧,为自己的实例添一个暂停的功能,然后再往下进行执行。