当サイトはQ&A掲示板(コミュニティ)の窓口を共有して下さるサイト様を募集しています。
[Q&A掲示板] 共有サイト様募集!#!/usr/bin/perl # カウントデータ $DATA_COUNT = 'count.dat'; open(DATA, "< $DATA_COUNT"); eval{ flock(DATA, 1); }; # データ更新フラグを偽 $f = 0; # カウント数取得 と 前回のIPと 日付を取得 ($today_count, $yesterday_count, $total, $ip, $day) = split(/\t/, <DATA>); # 日付取得 (undef, undef, undef, $d, $m, $y) = localtime(time); # 日付出力形式成型 $today = "$y/$m/$d"; # もし日付が変わっているなら if($day ne $today) { # 日付更新 $day = $today; # 今日のカウンターを昨日へ $yesterday_count = $today_count; # 今日のカウントを0にセット $today_count = 0; # データ更新フラグを真 $f = 1; } # もし前回アクセス者のIPと今回のIPが違うなら if($ENV{'REMOTE_ADDR'} ne $ip) { # カウント値加算 $today_count++; $total++; $ip = $ENV{'REMOTE_ADDR'}; # データ更新フラグを真 $f = 1; } close(DATA); # データ更新フラグが真なら if($f) { open(DATA, "+< $DATA_COUNT") or open(DATA, ">> $DATA_COUNT"); eval { flock(DATA, 2); }; seek(DATA, 0, 0); print DATA "$today_count\t$yesterday_count\t$total\t$ip\t$day"; truncate(DATA, tell(DATA)); close(DATA); } print "Content-type: text/html\n\n"; print "合計:$total\n今日:$today_count\n昨日:$yesterday_count\n";