本文目录一览:
- 1、PHP实现定时任务的几种方式
- 2、PHP当中的 sleep()函数问题
- 3、php sleep函数放入循环为什么会超时
- 4、php怎么实现延时执行代码且访问不过期
- 5、PHP的sleep函数
- 6、关于php中sleep函数
PHP实现定时任务的几种方式
一. 简单
?php
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
ini_set('memory_limit','512M'); // 设置内存限制
$interval=60*30;// 每隔半小时运行
do{
//ToDo
sleep($interval);// 等待5分钟
}
while(true);
二. 简单 可控型
config.php
?php
return 1;
?
cron.php
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*30;// 每隔半小时运行
do{
$run = include 'config.php';
if(!$run) die('process abort');
//ToDo
sleep($interval);// 等待5分钟
}
while(true);
三. 简单 改进型
?php
$time=15;
$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
/*
function
*/
sleep($time);
file_get_contents($url);
?
PHP当中的 sleep()函数问题
同学,你要先理解php是在服务器端执行的
你的这个结果,却是被客户端浏览器解析的
所以,服务器执行了 输出1 睡眠3 输出2 用时3秒
然后返回了最终的结果
而,同时,浏览器是不能用html来动态显示内容的
你需要使用ajax
处理逻辑是:
ajax 控制js向服务器发报,服务器返回显示时间的页面,页面用js动态加入div中
这个过程用js控制,每3秒自调用一次
即是在js function中添加setTimeout( "方法名() ", 3000);
当然,还有另外一个方法,上面的方法能获得的是服务器端的时间,下面这个则是客户端的时间,处理逻辑如下:
和上个方法一样,写一个js的3秒间隔自调用函数,然后该函数会改变某个div的值,值显示为当前时间。
其实还有个方法,使用js每隔3秒来刷新当前页面。
但无论哪种方法 都用不到sleep
php sleep函数放入循环为什么会超时
一个PHP程序执行时间是有限的,一般默认是30秒。
如果将sleep放到循环中,就是sleep很多次,造成页面执行超时。
具体问题需要根据你的代码来判断,最好发一下源代码
php怎么实现延时执行代码且访问不过期
用php-cli执行这种长时间阻塞的代码..没有终止时间。
对于网站用的php执行档要在php.ini中间改最大时长。
PHP的sleep函数
sleep() 函数延迟代码执行若干秒
你关闭浏览器后,服务器端当然仍会执行,只是你看不到而已
关于php中sleep函数
定义和用法:
sleep() 函数延迟代码执行若干秒。
语法:sleep(seconds)
参数:seconds 描述:必需。以秒计的暂停时间。
返回值:
若成功,返回 0,否则返回 false。
错误/异常:
如果指定的描述 seconds 是负数,该函数将生成一个 E_WARNING。
例子:
?php
echo date('h:i:s') . "br /";
//暂停 10 秒
sleep(10);
//重新开始
echo date('h:i:s');
?
输出:
12:00:08
12:00:18