DBを使わず、簡易的なアクセスカウンターを設置する場合。
更新するたびにカウントされる。
$counter_file = __DIR__.'/counter/count.txt';
$counter_lenght = 8;
$fp = fopen($counter_file, 'r+');
if ($fp) {
if (flock($fp, LOCK_EX)) {
$counter = fgets($fp, $counter_lenght);
// 更新する度カウントすることを制限する場合、セッションを利用
if(empty($_SESSION['counter'])){
$counter++;
$_SESSION['counter'] = true;
}
rewind($fp);
if (fwrite($fp, $counter) === FALSE) {
echo ('<p>'.'ファイル書き込みに失敗しました'.'</p>');
}
flock ($fp, LOCK_UN);
}
}
fclose ($fp);
echo "<span class='accesscounter'><span class='icon_img'><img src='".get_bloginfo("template_url")."/img/icon_counter.png'></span><span class='access_num'>".$counter."</span></span>";
WordPressの場合は、セッション開始の処理が必要
// function.phpに以下を追加
function start_session(){
if (!session_id()) {
session_start();
}
}
add_action('init', 'start_session');