本文目录一览:
如何使用纯PHP实现定时器任务
我用PHP写了下面的延时代码,主要用来作为BAT文件调用进行倒计时:
// 批处理延时工具
if ($argc == 2) {
set_time_limit(0);
$v = $argv[1] + 0;
while ($v > 0) {
echo "\r请等待 " . sec2str($v) . " 秒。。。 ";
$n = $v > 600 ? 600 : ($v > 60 ? 60 : ($v > 10 ? 10 : 1));
sleep($v % $n ? $n : $v);
$v -= $n;
}
$v = $argv[1] + 0;
echo "\r" . sec2str($v) . " 秒延时完毕。 \n";
} else {
echo "使用方法:\nsleep.php 演示秒数";
}
function sec2str($v) {
$s = '';
if ($v > 3600) {
$s .= floor($v / 3600) . ':';
$v %= 3600;
}
if ($s != '' || $v > 60) {
$s .= floor($v / 60) . ':';
$v %= 60;
}
$s .= $v;
return $s;
}
用php怎么做定时器
你写好一个PHP脚本,就是用来检测工作计划并发送email的,用服务器的计划任务跑这个脚本,或者用js的setTimeout定时请求也行。
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
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);
三. 简单 改进型
$time = 15;
$url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
sleep($time);
file_get_contents($url);
PHP怎么制作计时器
计时器的运用在网页制作中很普遍,其实计时器有很多做法,PHP加JS、JS加AJAX也可以控制实现。不是PHP可以单独实现的,因为PHP是实现服务端的语言,没有办法去控制。以下实例就是制作计时器的代码:
<script language="JavaScript">
var timerID = null;
var timerRunning = false;
function stopclock() {
if(timerRunning)
clearTimeout(timerID);
timerRunning = false;
}
function startclock() {
stopclock();
showtime();
}
function showtime() {
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
var timeValue = "" + hours;
timeValue += ((minutes < 10) ? ":0" : ":") + minutes;
timeValue += ((seconds < 10) ? ":0" : ":") + seconds;
document.Calc.time.value = timeValue;
timerID = setTimeout("showtime()", 1000);
timerRunning = true;
return '';
}
</script>
客服端PHP+HTML代码:
<html>
<head>
<meta http-equiv="Refresh" content="1;URL=test.php">
</head>
<body>
<?php
echo date("Y年m月d日 H时i分s秒");
?>
</body>
</html>