回答編集履歴

1

加筆修正

2021/01/18 02:47

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,37 @@
1
1
  生のアクセスログはチェックしていないのでしょうか?
2
2
 
3
3
  正確性の怪しいカウンター処理なんかよりも当てになると思うのですが。
4
+
5
+
6
+
7
+
8
+
9
+ ---
10
+
11
+
12
+
13
+ 排他ロックの件、言及しておくと、
14
+
15
+ `if (flock($fp, LOCK_EX)) {`
16
+
17
+ に対するelseが存在しないので、排他ロックの取得に失敗したときに何もしないことになってる。
18
+
19
+ (アクセス殺到するなどして)排他ロックが取れないとき、
20
+
21
+ 数ミリ秒待って再度取得を試みるようにwhile()ループにするのも手ですが、
22
+
23
+ 何度やっても取得できない場合に無限ループにならないよう、
24
+
25
+ 例えば10回試してダメだったら諦めるとかやらないといけないはず。
26
+
27
+
28
+
29
+ それでも、何かの折にファイル破損してしまうかもしれないので、
30
+
31
+ 本気でカウントしたければデータベースに記録するのがいいかも。
32
+
33
+
34
+
35
+ まぁ、そこまでの本気度ではなさそうだし、
36
+
37
+ せいぜい、特定のアクセス元はカウントせずスルーするようなアルゴリズムを加えるべきでしょうね。