php定时器的写法是什么

发布时间:2022-11-22

本文目录一览:

  1. 如何使用纯PHP实现定时器任务
  2. 用php怎么做定时器
  3. PHP实现定时任务的几种方式
  4. PHP怎么制作计时器

如何使用纯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>