首頁 後端開發 php教程 用PHP實現定時器功能

用PHP實現定時器功能

Aug 08, 2016 am 09:23 AM
quot time

以前只知道用JS能實現定時器功能,而且很方便,但今天做專案過程中要實現個功能模組,做到其中某部分時,心想要是可以透過PHP來實現個定時器功能就好了,於是在網路上找了找,發現用gnore_user_abort()函數配合set_time_limit()函數和一個死循環就可以實現類似功能。雖然專案最終未使用該功能,但覺得潛在的使用價值還是很高的,因此後來又參考網上的一些資料,整理如下:

<?php
    // 1、范例代码:
    ignore_user_abort(true);  // 设置与客户机断开是否会终止脚本的执行。
    set_time_limit(0);        // 设置脚本超时时间,为0时不受时间限制
    ob_end_clean();           // 清空缓存
    ob_start();               // 开始缓冲数据
    while(1){
        echo str_repeat(" ",1024);  // 写满IE有默认的1k buffer
        ob_flush();                 // 将缓存中的数据压入队列
        flush();                    // 输出缓存队列中的数据
        echo "now time is ".date('h:i:s');  // 打印数据,其实是先将数据存入了缓存中
        usleep(1000000);            //延迟一秒(暂停一秒)
    }
    // 该段程序实现的功能是每隔一秒钟输出一次包含当前时间的字符串。

    // 2、说明:
    // 经过测试,范例结果中会出现不连续输出,如果要求实现连续、均匀的输出效果(如输出时间),则应设置缓存;为方便理解,提供相关函数作用说明如下:
    /*
    ①ignore_user_abort(bool):设置与客户机断开是否会终止脚本的执行。
    ②set_time_limit(int seconds)设置允许脚本运行的时间,单位为秒。参数值为0时不受限制。
    ③ob_end_clean():清除服务端缓存的数据
    ④ob_start():开启一个缓存(可嵌套)
    ⑤ob_flush():将缓存中的数据压入队列
    ⑥flush():输出缓存队列中的数据
    ⑦usleep(int m-seconds):以指定的微秒数延缓程序的执行。
    */
    // 注:
    // flush()和ob_flush()的正确顺序应是,先ob_flush()再flush(),不可弄混。
    // usleep()函数可替换成sleep()函数,不同之处在于sleep()的参数是秒。
登入後複製

以上就介紹了用PHP實作定時器功能,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

time包的單調時鐘處理 time包的單調時鐘處理 Aug 04, 2023 pm 05:45 PM

我們今天主要是來看看golang time 套件的時間應用方式。兩者的一般規則是“wall time”用於告知時間,而“monotonic clock”用於測量時間;除外還有其他的時鐘處理方式。

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Java8 Time Api如何使用 Java8 Time Api如何使用 Apr 28, 2023 pm 12:25 PM

1.概述作為本文的一部分,讓我們從現有Date和CalendarAPI存在的一些問題入手,來探討新的Java8Date和TimeAPI如何解決這些問題。我們也將搞一搞Java8時間類別庫中的核心類,例如LocalDate,LocalTime,LocalDateTime,ZonedDateTime,Period,Duration以及它們的api。 2.舊的時間API(java8之前)的問題線程安全-Date和Calendar類別不是線程安全的,使開發者難以調試這些api的並發問題,需要編寫額外的程式碼來處

python中time和datetime的差別及用法是什麼 python中time和datetime的差別及用法是什麼 May 02, 2023 am 11:01 AM

一.Python中表示時間的兩種方式:時間戳:相對於1970.1.100:00:00以秒計算的偏移量,唯一的時間元組struct_time:共有9個元素>tm_year:年1-12> tm_mon:月1-12>tm_mday:日1-31>tm_hour:時0-23>tm_min:分0-59>tm_sec:秒0-59>tm_wday:星期0-6(0表示週日)>tm_day:一年中的第幾天1-366>tm_isdst:是否為夏令,預設為-1二.ti

Python time模組時間怎麼取得與轉換 Python time模組時間怎麼取得與轉換 May 13, 2023 pm 12:19 PM

Pythontime模組時間取得和轉換Python的Time庫可以進行時間相關的處理,例如存取當前日期和時間,輸出不同格式的時間以及等待指定的時間等。 1.取得時間1.1.時間戳importtimetimestamp=time.time()#1682737552.5009851格林威治時間(GMT)1970年01月01日00時00分00秒起至現在的總秒數1.2.結構化時間01日00時00分00秒起至現在的總秒數1.2.結構化時間importstructtime_time= time.localtime()#time.struct_time(tm_year=2

使用PHP函數 'time' 傳回目前的UNIX時間戳 使用PHP函數 'time' 傳回目前的UNIX時間戳 Jul 25, 2023 pm 04:42 PM

使用PHP函數"time"傳回目前的UNIX時間戳UNIX時間戳是指從協調世界時(UTC)1970年1月1日0時0分0秒起至今的總秒數。在PHP中,可以使用內建函數"time"來取得目前的UNIX時間戳記。本文將介紹如何使用這個函數,並提供對應的程式碼範例。程式碼範例:&lt;?php$timestamp=time();echo"目前的

如何解決 golang 中的 'undefined: time.After” 錯誤? 如何解決 golang 中的 'undefined: time.After” 錯誤? Jun 25, 2023 pm 05:28 PM

Golang是一門非常受歡迎的程式語言,其簡單易學、高效快速的特性吸引了越來越多的開發者。但在使用中,不可避免地會遇到一些問題和錯誤。例如,使用time套件中的After方法時,可能會遇到undefined:time.After的錯誤。本篇文章將為大家介紹如何解決這個錯誤。了解錯誤原因在Golang中,如果我們使用了一個未導出的函數名稱或未正

Go語言基礎之time包詳解 Go語言基礎之time包詳解 Jul 21, 2023 pm 01:27 PM

time.Now()回傳的是一個Time型別。有時候別人給我們的是時間戳,我們需要反轉以下,時間戳-時間類型。需要用到的是time.Unix。

See all articles