首頁 php教程 php手册 PHP定时执行程序脚本的例子总结

PHP定时执行程序脚本的例子总结

May 23, 2016 am 08:34 AM

PHP定时执行程序脚本我写过不少文章不过都被那些大站采集过去了,结果百度算法有问题大站有排名我的没有,下面我今天再来给各位整理一些不错的定时执行程序的php代码.

今天分享一个超简单直接的PHP定时执行的小代码,关掉浏览器,PHP脚本也能后继续执行,用web浏览器定时刷新今天想到用sleep函数来实现php 自动定时执行,只要php能运行即可.

由于代码少,这里给个例子直接解释,代码如下:

<?php 
    ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行 
    set_time_limit(20);//程序超时时间,单位秒;通过set_time_limit(0)可以让程序无限制的执行下去;当用了set_time_limit()函数设置运行时间,sleep()函数在执行程序时的持续时间将会被忽略掉 
    $interval=5;//每隔多少秒运行,单位:秒 
    do{ 
        //这里是你要执行的代码 
        $i = 1; 
        $num_file = "number.txt"; 
        $fp = fopen($num_file,"r"); 
        $buf = fread($fp,filesize($num_file)); 
        fclose($fp);  
        $number = file_get_contents($num_file); 
        $number = $number+$i; 
        $fp = fopen($num_file,"w"); 
        fwrite($fp,$number); 
        fclose($fp); 
        echo $number; 
        //等待执行的时间 
        sleep($interval); 
    } 
    while(true);
登入後複製

上面方法如果关了浏览器好像就不行了,我们可以尝试使用平台的计划任务来处理.

1、windows 的计划任务

2、linux的脚本程序

php代码如下:

<?php 
    if($_GET[&#39;ac&#39;]==&#39;stop&#39;) 
    exit(); 
    sleep(5); 
    $name=time(); 
    $fp=fopen("$name.txt",&#39;w&#39;); 
    fwrite($fp,time()); 
    fclose($fp); 
    $fp = fsockopen(&#39;localhost&#39;, 80, $errno, $errmsg); 
    fputs($fp, "GET /test/time.php\r\n\r\n");  
    fclose($fp);
登入後複製


在浏览器里执行一下http://localhost/test/time.php,则会在test 文件夹下每隔5秒自动创建一个以当前时间戳命名的txt文件,并写入当前时间戳.

可以发现即使关闭了浏览器,这个脚本还是会每5秒执行一次,这样就达到了定时执行的目的,如果是要按时间点执行,比如每天 1点钟的时候执行,那么也只需要小小修改一下也能够实现.

当然这只是一种解决思路,至于实际应用,还要再探索一番,还有一种实现方法:利用死循环,原理差不多PHP代码如下:

<?php 
    ignore_user_abort(true); 
    set_time_limit(0);while(1){ 
    $fp  = fopen(&#39;time_task.txt&#39;,"a+"); 
    $str = date("Y-m-d h:i:s")."n"; 
    fwrite($fp,$str); 
    fclose($fp); 
    sleep(1800);    //半小时执行一次 
    if(!file_exists(&#39;1.txt&#39;)) 
         exit();    //在目录下建立一个文件1.txt,如果文件存在一直执行,如果文件不存在则退出 
    }
登入後複製

补充这样也可以:

<?php 
    ignore_user_abort();//关闭浏览器后,继续执行php代码 
    set_time_limit(0);//程序执行时间无限制 
    $sleep_time = 5;//多长时间执行一次 
    $switch = include &#39;switch.php&#39;; 
    while($switch){ 
        $switch = include &#39;switch.php&#39;; 
        $fp = fopen(&#39;test.txt&#39;,&#39;a+&#39;); 
        fwrite($fp,"这是一个php博客:phpddt.com $switch \n"); 
        fclose($fp); 
        sleep($sleep_time); 
    } 
    exit();
登入後複製


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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)