//採集 public function actionCai(){ $data=file_get_contents('log.txt'); //var_dump($data);die; $reg="|20/Feb/2009:(.*) -0800|"; // var_dump($reg);die; preg_match_all($reg,$data,$arr); //print_r($arr);die; //定義空數組 $timearr=array(); //總條數 $count=count($arr[1]);//346條 //$arr[1]的格式爲00.00.00 // var_dump($arr[1]);die; foreach($arr[1] as $key=>$val){ //截取小時數 // echo substr($val,0,2); //截取分鐘數 // print_R(substr($val,3,2)); //拼接截取後的小時分鐘數,並循環獲取時間戳,並以$arr[1]的鍵值爲鍵值 $timearr[$key]=strtotime(substr($val,0,2).':'.substr($val,3,2)); // print_R($timearr); } //print_R($timearr);die; //die; //現在$timearr爲所有時間的時間戳 //定義空數組 //print_r($timearr); $data=array(); // $timearr = array(); // print_r($timearr);die; //00:00時間戳 //echo strtotime("2016-10-23 00:00:00");die; //echo date('Y-m-d H:i:s','1477152000');die;現在 //1477152600 //echo date('H:i',"1235059200");die; //$a爲00:00 ,43200爲12小時 for($a=1477152000;$a<1477152000+86400;$a++){ // echo $a; foreach($timearr as $k=>$v){ //var_dump($v); if($v<=$a+600 && $v>$a){ $k1=date('H:i',$a+60); // var_dump($k1,'<br/>'); $k2=date('H:i',$a+600); $data[$k1.' - '.$k2][]=$v; } } $a=$a+599;//每循環一次加10分 } //var_dump($data);die; //計算點擊量並放入數組中 foreach($data as $key=>$val){ $data[$key]['count']=count($val); } // var_dump($data);die; // // 計算比例並放入數組 foreach($data as $key=>$val){ $data[$key]['bl']=substr($data[$key]['count']/$count*100,0,4).'%'; } // //分頁 // $pagination=new Pagination(['totalCount' =>count($data)]); // print_r($data);die; return $this->render('cai',['data'=>$data]); } //採集訪問量 public function actionGather(){ $data=file_get_contents('log.txt'); $reg='/.* - - (.*) ".*"/'; // 'x-132-204-255-66.xtpr.umontreal.ca - - [21/Feb/2009:13:05:09 -0800] "GET /uwnidrr/images/headersfooters/IconSpacer.gif HTTP/1.1" 200 109'; //var_dump($data);die; preg_match_all($reg,$data,$arr); //print_r($arr[1]);die; //定義空數組 $count=count($arr[1]); //$str=substr($arr[1][0],13,2); $hours=array(); //將指定數量的帶有指定值的元素插入到數組中 插入24個 值爲0。 $hours = array_pad($hours, 24, 0); foreach($arr[1] as $k=>$v){ $str=substr($arr[1][$k],13,2); $str=(int)$str; ++$hours[$str]; // switch ($str) { // case '00': // ++$hours[0]; // break; // case '01': // ++$hours[1]; // break; // case '02': // ++$hours[2]; // break; // case '03': // ++$hours[3]; // break; // case '04': // ++$hours[4]; // break; // case '05': // ++$hours[5]; // break; // case '06': // ++$hours[6]; // break; // case '07': // ++$hours[7]; // break; // case '08': // ++$hours[8]; // break; // case '09': // ++$hours[9]; // break; // case '10': // ++$hours[10]; // break; // case '11': // ++$hours[11]; // break; // case '12': // ++$hours[12]; // break; // case '13': // ++$hours[13]; // break; // case '14': // ++$hours[14]; // break; // case '15': // ++$hours[15]; // break; // case '16': // ++$hours[16]; // break; // case '17': // ++$hours[17]; // break; // case '18': // ++$hours[18]; // break; // case '19': // ++$hours[19]; // break; // case '20': // ++$hours[20]; // break; // case '21': // ++$hours[21]; // break; // case '22': // ++$hours[22]; // break; // case '23': // ++$hours[23]; // break; // default: // break; // } } return $this->render('gather',['hours'=>$hours,'count'=>$count]); }
<?php use yii\helpers\Html; use yii\helpers\Url; ?> <table class="table"> <tr> <th>時段</th> <th>佔比</th> </tr> <?php foreach($hours as $key=>$hour):?> <tr> <td><?= $key.'-'.($key+1);?></td> <td><?= (float)(($hour/$count)*100).'%'?></td> </tr> <?php endforeach;?> </table>