>  기사  >  백엔드 개발  >  php程序重要是正则协助 很急很

php程序重要是正则协助 很急很

WBOY
WBOY원래의
2016-06-13 12:53:30776검색

php程序主要是正则协助 很急很急
 文件log.txt:
220.172.12.141  [17/Feb/2011:06:05:52 +0800] "GET /lift.sina.com.cn/tuan.html"
220.172.12.142  [17/Feb/2011:06:05:54 +0800] "GET /lift.sina.com.cn/ent.html"
220.172.12.143  [17/Feb/2011:06:05:55 +0800] "GET /lift.sina.com.cn/tuan.html"
220.172.12.144  [17/Feb/2011:08:05:56 +0800] "GET lift.sina.com.cn/sports.html"
220.172.12.145  [17/Feb/2011:10:05:56 +0800] "GET lift.sina.com.cn/news.html"
220.172.12.145  [17/Feb/2011:11:05:57 +0800] "GET lift.sina.com.cn/tuan.html"

.
要求用php程序统计出各小时/lift.sina.com.cn/tuan.html 的页面访问次数

$hours = array();
$handle = fopen('log.txt','r+');
if ($handle){
    while (!feof($handle)){
        $line = fgets($handle,4096);
   preg_match('/\d*\.\d*\.\d*\.\d*  \[.*:(.*):.*:.* \+0800\] .*"GET\s\/lift\.sina\.com\.cn\/tuan\.html"/', $line,$result);
        if (isset($result[1])){
            $hours[$result[1]]++;
        }
    }
}
var_dump($hours);
我是用一个正则分组去做,为什么匹配不出时间
很急 很急


------解决方案--------------------
你那个也是对的,只是你忽略了
220.172.12.145  [17/Feb/2011:11:05:57 +0800] "GET lift.sina.com.cn/tuan.html"
中的是
GET lift.sina.com.cn/tuan.html
而不是
GET /lift.sina.com.cn/tuan.html

------解决方案--------------------
$handle = fopen('log.txt','r+');
echo $handle ; //看看读出来对不对
------解决方案--------------------
不存在你说的现象
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.