带有 DATE 的 PHP 命中计数器

标签 php file web

我将以下代码用于点击计数器:

$fp = fopen("counterlog.txt", "r"); 
$count = fread($fp, 1024); 
fclose($fp); 
$count = $count + 1; 
$fp = fopen("counterlog.txt", "w"); 
fwrite($fp, $count); 
fclose($fp); 

在文件中我只有一个数字,但我想通过以下方式获取文件:

18/09/2015  10
19/09/2015  11

所以我希望计数按天和日期分组,并用制表符分隔。

我知道我可以使用数据库来做到这一点,但在这种特定情况下,我只想使用文本文件。

有可能得到吗?

最佳答案

这应该符合您的要求。

<?php


$dateexists = false;

if(!file_exists('counterlog.txt'))
{
    $fh = fopen('counterlog.txt', 'w');
    fclose($fh);
}

$datecounts = file('counterlog.txt', FILE_IGNORE_NEW_LINES);
foreach($datecounts as $key => $datecount){

    list($date, $count) = explode("\t", $datecount);

    $count = (int) $count;
    if($date == date('d/m/Y'))
    {
        $datecounts[$key] = $date."\t".++$count;
        $dateexists = true;
    }
}
if(!$dateexists)
{
    $datecounts[] = date('d/m/Y')."\t1";
}

$fh = fopen('counterlog.txt', 'w');
if (flock($fh, LOCK_EX)) {
    foreach($datecounts as $datecount)
    {
        fwrite($fh, $datecount.PHP_EOL);
    }
    flock($fh, LOCK_UN);
}
else
{
    //couldn't lock, might want to do stuff here
}
fclose($fh);

关于带有 DATE 的 PHP 命中计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32669518/

相关文章:

ruby-on-rails - rails : How to create a file from a controller and save it in the server?

python - 如何在python中只获取文件?

javascript - HTML、CSS、JS 意外结束输入错误

javascript - TextHighlighter 库的解除绑定(bind)/销毁事件

c++ - 关闭文件时会出现错误吗?

php - 如何在mac/usr/bin/nohup上执行

java - Web 服务器如何填充 $_POST 和 $_GET?

php - 1美元和2美元是什么意思?

php - 如何使div 100%宽度减去一定量?

php - 准备和装订