😉
アクセスカウンター:ファイル編(発展版)
この記事について
この記事は、以下の本の連載記事です。
アクセス数を日付毎のファイルに保存する❗
この記事は、アクセスカウンターの発展版です。簡単版、難しい版をクリアしてから挑戦することをお勧めします❗❗
日付毎にアクセス数をカウントするプログラム
コメントは3点リーダーにしています。その箇所のプログラムの意味を自分で調べて、コメントを追記してみましょう❗
count_date.php
<?php
// ...
error_reporting(E_ALL);
// ...
$dir = 'counter';
// ...
if(!file_exists($dir)){
$current_directory = getcwd();
echo "<p style='color:red;'>This directory does not exist. ($current_directory, $dir)</p>";
return;
}
// ...
if(!is_writable($dir) ){
echo "<p style='color:red;'>Please add write permission to this directory. ($dir)</p>";
return;
}
// ...
$date = date('Y-m-d');
// ...
$file_path = "{$dir}/{$date}.txt";
// ...
if(!file_exists($file_path) ){
if(!touch($file_path) ){
echo "<p style='color:red;'>Please add write and execute permission to this directory. ($dir)</p>";
return;
}
}
// ...
if(!is_writable($file_path) ){
echo "<p style='color:red;'>Please add write permission to this file. ($file_path)</p>";
return;
}
// ...
$today = file_get_contents($file_path);
// ...
$today++;
// ...
file_put_contents($file_path, $today, LOCK_EX);
// ...
$yesterday = date('Y-m-d', strtotime('-1 day'));
// ...
$file_path = "{$dir}/{$yesterday}.txt";
// ...
if( file_exists($file_path) ){
$yesterday = file_get_contents($file_path);
}else{
$yesterday = 0;
}
// ...
var_dump($yesterday, $today);
うまく動きましたか?
もしうまく動かなかった場合は、LINEのオープンチャットで質問してみて下さい。
もしうまく動いたら、次はデータベース編に挑戦してみましょう❗
もしうまく動かなくても、気晴らしにデータベース編に挑戦してみましょう❗
Discussion