Создайте новый .txt файл каждые 24 часа - PullRequest
1 голос
/ 01 июня 2019

Я пытаюсь создать счетчик посетителей с php, который будет создавать yy-mm-dd.txt каждый день и содержать количество посетителей в этот день, а после 12:00 он создаст новый файл yy-mm-dd.txt.Например, сегодня 2019-06-02, поэтому текстовый файл будет 2019-06-02.txt, а на следующий день файл 2019-06-03.txt будет создан автоматически.

Вот что я пробовал, но он не создает новый2019-06-03.txt файл после 12 утра.Он сохраняет тот же 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);

 ?>

Как это исправить?

Ответы [ 2 ]

2 голосов
/ 02 июня 2019

Ваш код должен работать нормально. Мы также можем добавить is_dir и file_exists чеки, и мы можем использовать либо fopen, fwrite и fclose или file_get_content / file_put_content, если захотим. Мы также можем добавить default_timezone, например:

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!");
    }

}
2 голосов
/ 01 июня 2019

Лучше использовать file_get_contents, чем file_put_contents:

<?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);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...