アクセスカウンター
PHPで各ファイルへのアクセス数等を1つのファイルに行単位で記録するように作っております。
(1)各ファイルへのアクセス数をcount.datファイルに書き込む
※書き込み内容:(ファイル名,日付,合計,今日,昨日,リモートアドレス)
(2)該当ファイルのデータがない時は新規に追加。ある時はデータ更新
(3)新規に追加された場合はファイル名部分で行単位でソートする。
【ファイルの内容例】
abc.php,08/12/13,10,6,4,ocn.ne.jp
def.php,08/12/13,10,6,4,ocn.ne.jp
ghi.php,08/12/13,10,6,4,ocn.ne.jp
【現象】
(1)については元々ファイル単位で個別ファイルに記録させていた処理をもってきたものなので特に問題ないですが、(2)のところで躓いてます。
最初は該当ファイル名が無いので新規追加するだけなので問題ありません。2回目以降は該当ファイルがあるのでそのデータの更新ですが、最終行とその1つ前の行の間にスペース行が出来、その後はアクセスの度にその間のスペース行が増えていきます。
【ソース例】
//$countFile:書き込みファイル
$lines = file($countFile);
$dataLine = count($lines);
for($i=0; $i<$dataLine; $i++)
{
//該当ファイル名データがある場合は以下の処理を行う(省略)
$lines[$i] = trim($lines[$i]);
$today++;
$count++;
$lines[$i]= "$fileId,$date,$count,$today,$yesterday,$host";
$fp = fopen($countFile,"w");
flock($fp, LOCK_EX);
rewind($fp);
fwrite($fp, rtrim(implode("\n", $lines),"\n"));
flock($fp, LOCK_UN);
fclose($fp);
break;
}
色々試行錯誤しながらやってますが解決できません。どの部分が悪いのかご教授お願いします。またソートの部分も教えていただけると助かります。
お礼
ありがとうございます。 実はもうとっくに他のところで質問して解決してしまったのですが、ベストアンサーです。