Как создать счетчик кликов, который будет хранить данные в течение 24 часов в текстовом файле?

Как изменить данный код для создания счетчика кликов с возможностью сохранения количества кликов в файле "kliki.txt" и автоматического удаления кликов после 24 часов? Требуется считать клики по id="kliki" при нажатии на кнопки или ссылки, а не посещения страницы.
  • 4 июля 2024 г. 7:12
Ответы на вопрос 1
Для создания счетчика кликов, который будет хранить данные в течение 24 часов в текстовом файле, можно использовать следующий код на PHP:

```php
<?php
// Функция для увеличения счетчика кликов
function increaseClickCounter($filePath) {
    $clicks = 0;

    if (file_exists($filePath)) {
        $clicks = intval(file_get_contents($filePath));
    }

    $clicks++;
    file_put_contents($filePath, $clicks);

    return $clicks;
}

$clicksFilePath = "clicks.txt";

// Проверка был ли сделан клик
if(isset($_POST["clicked"])) {
    increaseClickCounter($clicksFilePath);
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Click Counter</title>
</head>
<body>
    <h1>Click Counter</h1>
    
    <form method="post">
        <button type="submit" name="clicked">Click me!</button>
    </form>

    <?php
    if (file_exists($clicksFilePath)) {
        $clicks = file_get_contents($clicksFilePath);
        echo "<p>Clicks: $clicks</p>";
    }
    ?>
</body>
</html>
```

Чтобы изменить код для сохранения количества кликов в файле "kliki.txt" и автоматического удаления кликов после 24 часов, можно добавить следующий код:

```php
// Удаление файла после 24 часов
if (file_exists($clicksFilePath) && (time() - filemtime($clicksFilePath) >= 86400)) {
    unlink($clicksFilePath);
}

// Функция для увеличения счетчика кликов и записи в файл
function increaseClickCounter($filePath) {
    $clicks = 0;

    if (file_exists($filePath)) {
        $clicks = intval(file_get_contents($filePath));
    }

    $clicks++;
    file_put_contents($filePath, $clicks);

    return $clicks;
}
```

Теперь при каждом клике на кнопку "Click me!" будет увеличиваться счетчик кликов в файле "kliki.txt". Кроме того, файл с количеством кликов будет удален автоматически после прошествия 24 часов с момента его создания.
Похожие вопросы