思路是这样的:$log_name = "access_log.20100812";
$fp = fopen($log_name,'r');
//初始化变量:
$index_pv = $goods_pv = 0
while($tmp = fgets($fp))
{
//分析$tmp,并将想应变量 累加1,得出总pv
  if(...)
     $index_pv +=1;
  if(...)
     $goods_pv +=1;
}
将$index_pv,$goods_pv 结果输出请问做以上统计对服务器资源占用大不大? 对客户浏览网页有没有太大影响? 如果log日志文件超过几百M会怎样?

解决方案 »

  1.   

    对服务器资源占用大不大? 不大,几k而已
    对客户浏览网页有没有太大影响? 当然没有
    如果log日志文件超过几百M会怎样?无论多大都没有影响真正值得担心的是:当你把文件打开后,系统再写入的内容在本次处理时是读取不到的
      

  2.   

    晕。
    你难道不会测试???
    自己建个几百M的LOG文件来测试下就知道了。不过象你这样的情况还不如用数据库,速度还要快点。
    自己在程序里记录访问日志到数据库。
      

  3.   

    +
    处理时间太长,这种东西吧,你用C或者perl做也比php强
      

  4.   

    你试试最好了。趁服务器不忙的时候。几个月以前处理过500M左右的文本,当时用了fseek拍脑袋的说,fgets一行一行,应该差不多还是LZ试一下吧,别忘了把结果贴出来,让我观摩下
      

  5.   

    我用php分析过1G的日志文件,一行一行地读,速度还是很快的
      

  6.   


    你分析这么大的文件时会不会出现:Maximum execution time of 30 seconds exceeded ?
    如果这样,怎么处理?
      

  7.   

    程序执行时间过长,出现Maximum execution time of 30 seconds exceeded怎么办?
      

  8.   

    程序开始处加上 set_timi_limit(0);