Php 每24小时生成一个新的.txt文件

Php 每24小时生成一个新的.txt文件,php,date,datetime,Php,Date,Datetime,我正在尝试用php创建一个访问者计数器,它将每天创建yy-mm-dd.txt,并包含当天的访问者数量,在上午12点之后,它将创建一个新的yy-mm-dd.txt文件。 例如,今天是2019-06-02,因此文本文件将是2019-06-02.txt,第二天,将自动创建2019-06-03.txt文件 这是我尝试过的,但在上午12点之后它不会创建新的2019-06-03.txt文件。它保留相同的2019-06-02.txt文件 <?php $date = date('Y-m-d');

我正在尝试用php创建一个访问者计数器,它将每天创建
yy-mm-dd.txt
,并包含当天的访问者数量,在上午12点之后,它将创建一个新的
yy-mm-dd.txt
文件。 例如,今天是2019-06-02,因此文本文件将是
2019-06-02.txt
,第二天,将自动创建
2019-06-03.txt
文件

这是我尝试过的,但在上午12点之后它不会创建新的
2019-06-03.txt
文件。它保留相同的
2019-06-02.txt
文件

<?php

    $date = date('Y-m-d');

    $fp = fopen('dates/'.$date.'.txt', "r");

       $count = fread($fp, 1024);

   fclose($fp);

       $count = $count + 1;

       $fp = fopen('dates/'.$date.'.txt', "w");

                 fwrite($fp, $count);

     fclose($fp);

 ?>


如何修复它?

最好使用
文件获取内容
然后
文件放置内容

<?php
$count = 1;
$content = file_get_contents(date('Y-m-d').'txt');
if($content !== FALSE){
   $count+=(int)$content;
}
file_put_contents(date('Y-m-d').'txt', $count);
?>

最好使用
文件获取内容
然后
文件放置内容

<?php
$count = 1;
$content = file_get_contents(date('Y-m-d').'txt');
if($content !== FALSE){
   $count+=(int)$content;
}
file_put_contents(date('Y-m-d').'txt', $count);
?>

您的代码应该工作正常。我们还可以添加
is\u dir
file\u exists
检查,如果愿意,我们可以使用
fopen
fwrite
fclose
file\u get\u content
/
file\u put\u content
。我们还可以添加
默认\u时区
,例如:

date_default_timezone_set("America/New_York");
然后,我们的代码看起来类似于:

date_default_timezone_set("America/New_York");

$dir = 'dates';

if (!is_dir($dir)) {
    mkdir($dir, 0755, true);
}

$count = 1;
$date = date('Y-m-d');
$filename = $dir . '/' . $date . '.txt';

if (!file_exists($filename)) {
    $fp = fopen($filename, "w");
    fwrite($fp, $count);
    fclose($fp);
} else {
    $count = (int) file_get_contents($filename) + 1;
    if ($count) {
        file_put_contents($filename, $count);
    } else {
        print("Something is not right!");
    }

}

您的代码应该工作正常。我们还可以添加
is\u dir
file\u exists
检查,如果愿意,我们可以使用
fopen
fwrite
fclose
file\u get\u content
/
file\u put\u content
。我们还可以添加
默认\u时区
,例如:

date_default_timezone_set("America/New_York");
然后,我们的代码看起来类似于:

date_default_timezone_set("America/New_York");

$dir = 'dates';

if (!is_dir($dir)) {
    mkdir($dir, 0755, true);
}

$count = 1;
$date = date('Y-m-d');
$filename = $dir . '/' . $date . '.txt';

if (!file_exists($filename)) {
    $fp = fopen($filename, "w");
    fwrite($fp, $count);
    fclose($fp);
} else {
    $count = (int) file_get_contents($filename) + 1;
    if ($count) {
        file_put_contents($filename, $count);
    } else {
        print("Something is not right!");
    }

}

那么,会发生什么?@johncode它保持相同的
yy-mm-dd.txt
文件您如何使用cron作业或@stefo91启动您的scrip每次访问者访问我的网页时都会执行此脚本。没有玉米作业那么,会发生什么?@johncode它保持相同的
yy-mm-dd.txt
文件如何使用cron作业或@stefo91启动您的纸条每次访问者访问我的网页时都会执行此脚本。没有玉米工作