■掲示板に戻る■
全部
1-
最新50
[PR]
ぜろちゃんねるプラス
[PR]
【白紙から】ウェブページ製造【作って何ぼ】
3 :
のりお
:2014/03/13 20:26:00 ID:twvJJBr7Gs
僕のイメージなのですがカウンターという機能は2つだけだと思っています。
・アクセスされた時に、ログファイルに書き出す。
・必要な時に、読み出す。
で、僕がファイルベースでカウンターを実装するなら、下のような形かなぁ〜。
・すべてのページと同名のファイル「xxxxxx.count」に、「日時」「IPアドレス」「セッションID」のレコード
(常に1レコード追記のみで、参照時に必ず呼ばれるようにする。
重複アクセスは取るが、セッションを貼れていないもの、IPアドレスのない物は取らない。ロボット検索・Bot対策)
・集計は、表示の必要があるのであれば、毎回行う必要があるので、処理が必要
管理者が見たい時だけならば、管理画面などに集計ボタンを追加すればページ表示の負荷は軽減する。
・集計処理は、すべての.countファイルのパスを取得し、foreachでまわしながら、それぞれのファイルレコード数を集計する。(readする)
・溜まり続けるので、集計時にある程度以上であれば、前側から自動で削除する。(たとえば、1万レコード以上になったら、順次削除のような処理)
・カウンターファイルへの書き込みをする場合(レコード追加・削除時)、
【php flock - Manual】(排他制御)
ttp://us1.php.net/manual/ja/function.flock.php
を行う。
処理を複雑にしてしまうと、ファイルアクセス時間がどうしても長くなってしまう為、排他制御を行っていない場合、壊れる可能性が高いです。
ファイルに対する処理を最低限にして、参照時に集計を行った方がまだましな状況になります。
100前後のページ数であれば、PHPで集計してもたいした時間はかかりません。(遅くてもミリ秒単位)
集計対象が1万ページ以上あるのであれば、やはりDB上でバイナリーの速度だと思われます。
セッションは、
session_start(); // index.phpなどの最初の方
$sessionID = real_escape_string(session_id(); // 必要になったら、これで取得する。
参考
ttp://doremi.s206.xrea.com/php/tips/session.html
元の物がわからないので、想像で話していますが。。。
8KB
続きを読む
掲示板に戻る
全部
前100
次100
最新50
名前:
E-mail
(省略可)
:
READ.CGI - 0ch+ BBS 0.7.5 20220323
ぜろちゃんねるプラス