| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 | <?phpnamespace Cas\Controller\CmdLine;use Cas\Dao\LotteryPvUvLog;use KIF\Core\Config;/** * 分析前一天 /log/Pass_log 访问日志 * * php index.php -cCmdLine_RunLog -aRun */class RunLog extends Controller {	public function doDefault() {	}		/**	 * 跑出前一天的活动的 IP PV UV	 * php /export/manager/v2/v2_cas/www/index.php -cCmdLine_RunLog -aRun	 */	public function doRun() {		$objDLotteryPvUvLog = new LotteryPvUvLog ();				# 获取昨天目录下 所有的 		$Y = date('Y',strtotime('-1 day today'));		$m = date('m',strtotime('-1 day today'));		$dir =Config::getInstance ()->get ( 'Log_Path' ).DIRECTORY_SEPARATOR.$Y.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR;				$list = scandir($dir);		$thisList = array();		$name = 'Pass_log_'.date('Y_m_d',strtotime('-1 day today'));		foreach($list  as $data){			if(strpos($data, $name) !== false){				$thisList[$data] = $dir.$data;			}		}		$allData = array();		$eventsArr = array();		$tmpEventsIp = array();		$tmpEventsUV = array();		foreach($thisList as $thisDir){			 $string = file_get_contents($thisDir);			 $d = explode("\n", $string);			 foreach($d as $key=> $s){			 	if($s){			 		$arr = unserialize($s);			 					 		if(isset($eventsArr[$arr['event_id']]['pv'])){			 			$eventsArr[$arr['event_id']]['pv'] ++;			 		}else{			 			$eventsArr[$arr['event_id']]['pv'] = 1;			 		}			 					 		$tmpEventsIp[$arr['event_id']][$arr['ip']] = $arr['ip'];			 					 		$tmpEventsUV[$arr['event_id']][$arr['ip'].$arr['user_agent']] = $arr['ip'].$arr['user_agent'];			 					 		$allData[] = $arr;			 	}			 }		}								# PV		# IP 		foreach($tmpEventsIp as $events_id => $ips){			$eventsArr[$events_id]['ip'] = count($ips);		}				# UV		foreach($tmpEventsUV as $events_id => $vps){			$eventsArr[$events_id]['uv'] = count($vps);		}				foreach($eventsArr as $events_id => $data){			$info = array();			$info ['events_id'] = $events_id ;			$info ['pv_num'] = $data['pv'] ;			$info ['uv_num'] = $data['uv'] ;			$info ['ip_num'] = $data['ip'] ;			$info ['date'] = strtotime('-1 day today');						$objDLotteryPvUvLog->add ( $info ,LotteryPvUvLog::PARAM_CREATE_ACTION_ONDUPLICATE);					}							}}
 |