需求:找到訪問小圖最多的前三個ip,ide
日誌文件20121030.logspa
0 192.168.1.102 small_0.gif
1 192.168.1.113 big_1.gif
2 192.168.1.110 small_2.gif
3 192.168.1.114 small_3.gif
4 192.168.1.118 small_4.gif
5 192.168.1.109 big_5.gif
6 192.168.1.110 small_6.gif
7 192.168.1.102 small_7.gif
8 192.168.1.110 small_8.gif
9 192.168.1.119 big_9.gif
10 192.168.1.112 small_10.gif日誌
。。。中間省略。。。ip
91 192.168.1.112 small_91.gif
92 192.168.1.112 small_92.gif
93 192.168.1.108 small_93.gif
94 192.168.1.105 big_94.gif
95 192.168.1.117 big_95.gif
96 192.168.1.119 big_96.gif
97 192.168.1.105 big_97.gif
98 192.168.1.120 small_98.gif
99 192.168.1.114 small_99.gifget
- $handle = fopen('20121030.log', 'r');
- $countip = array();//統計ip
- if ($handle) {
- while ($buffer = fgets($handle)) {//逐行讀取文件
- $arr = preg_split('/\t/',$buffer);
- if(strstr($arr[2],"small")){//小圖
- //ip爲鍵,出現次數爲指
- $countip[$arr[1]] = $countip[$arr[1]] ? ++$countip[$arr[1]] : 1;
- }
- }
- fclose($handle);
- arsort($countip);//ip出現次數倒序
- $topip = array_slice ($countip,0,3);//取前三個
- var_dump($topip);
- }