我正在为网站创建访问者计数器。它需要显示当月的访问量。 这是代码:
<?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开始计数?
答案 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中保持干净。