如何让脚本在月后运行?

时间:2018-05-17 12:23:13

标签: php

我正在为网站创建访问者计数器。它需要显示当月的访问量。 这是代码:

<?php
 if(file_exists('visitors.txt'))
 {
    $myFile = "visitors.txt";
    $fh = fopen($myFile, 'r');
    $myFileContents = fread($fh, 21);
    fclose($fh);
    echo $myFileContents;
    $myFile2 = "visitors.txt";
    $myFileLink2 = fopen($myFile2, 'w+') or die("Can't open file.");
    $newContents = $myFileContents+1;
    fwrite($myFileLink2, $newContents);
    fclose($myFileLink2);
    echo $newContents;
 }
 else
 {
    $myFile = "visitors.txt";
    fclose($fh)
 } 
?>

它创建文件visistors.txt并节省访问次数。现在我如何每个新月清理这个文件并从0开始计数?

1 个答案:

答案 0 :(得分:2)

这是基本的想法 我看看文件是否存在。
如果是,那么我读取内容并将其中一个添加到计数中并将其保存到文件中(覆盖以前的数据) 如果不是,请使用计数1创建文件。

(*colorInfoVector)[i]->m_displayVector;

EDIT;只要您不打开并自行编辑内容(意外添加空格或其他字母使$ count ++失败),这应该可以正常工作。)
你也许可以做$ym = date("Y-m"); // 2018-05 if(file_exists('visitors-' $ym . '.txt')){ // visitors-2018-05.txt $count = file_get_contents('visitors-' $ym . '.txt'); $count++; file_put_contents('visitors-' $ym . '.txt', $count); }else{ file_put_contents('visitors-' $ym . '.txt', "1"); } ,但它并不完全安全 如果你需要一个万无一失的解决方案,我认为你需要正则表达内容,但这是过度的,并没有充分的理由消耗内存和CPU。
只是不要在文件中,只用代码打开它,你就是安全的。

再次编辑:只是一个提示。几个月后你会有很多文本文件 将它们保存在一个单独的文件夹中,以使其在webroot中保持干净。