<?
//-- 검색으로 유입 된 레코드. 표본 200개 기준. 한글만
//-- 검색 구분 문자 : q=, query=, stx=
$qtx	= array("q", "query");
$list	= array();
$specimen	= 200;		//-- 표본 개수



$cache_path	= "$g4[path]/data/zm.exp/cache";				//-- 캐시 파일 경로
$cache_file = $cache_path."/cache_keyword.php";				//-- 캐시 파일

//-- 캐시 파일이 기록 될 경로
if(!file_exists($cache_path)) zm_mkdir($cache_path);

if(file_exists($cache_file)) {
	$filetime	= filectime($cache_file);
}else{
	$filetime	= 0;
}

//-- 새글 캐쉬 시간이 지났으면 새 캐쉬를 만듬
if($filetime < ($g4[server_time]-3600)) {
	$list_json	= "";
	$sql	= "select * from $g4[visit_table] where vi_referer like '%q=%' or vi_referer like '%query=%' or vi_referer like '%stx=%' limit $specimen";
	$result	= sql_query($sql);
	$j	= 0;
	while($rd = sql_fetch_array($result)) {
		$temp1	= explode("?", $rd[vi_referer]);
		$temp2	= explode("&", $temp1[1]);

		for($i = 0; $i < count($temp2); $i++){
			$temp3 = explode("=", $temp2[$i]);
			if($temp3[0] == $qtx[0] || $temp3[0] == $qtx[1]) {
				if($temp3[1]){
					$keyword	= urldecode($temp3[1]);
					$keyword	= preg_replace("/\s+/", "", $keyword);
					$sw	= 0;
					for($k = 0; $k <= $j; $k++) {
						if($list[$k][word] == $keyword){
							$list[$k][count] += 1;
							$sw	= 1;
						}
					}
					if($sw == 0) {
						$j++;
						$list[$j][word] = $keyword;
						$list[$j][count] = 1;
					}
				}
			}
		}
	}

	for($i = 0; $i < count($list); $i++){
		for($j = 0; $j <= $i+1; $j++){
			if($list[$i][count] > $list[$j][count]) {
				$temp	= $list[$i][word];
				$list[$i][word]	= $list[$j][word];
				$list[$j][word]	= $temp;
				$temp	= $list[$i][count];
				$list[$i][count]	= $list[$j][count];
				$list[$j][count]	= $temp;
			}
		}
	}

	$list_json	= json_encode($list);
	//-- 파일 쓰기
	$fh		= fopen("$cache_file","w");
	fwrite($fh, $list_json);
	fclose($fh);
	clearstatcache();
}	//-- end if

//-- 캐시를 읽어 옮
$tmp_cache	= "";
$tmp_list	= array();
if(file_exists($cache_file)) {			//-- 캐쉬 파일 있을 때만 열기
	$data		= @file("$cache_file");
	for($i = 0; $i <  sizeof($data); $i++)	$tmp_cache .= $data[$i];
	$tmp_list	= json_decode($tmp_cache, true);
}

//-- 출력할 목록 수는 입력받은 수에 맞추기
$list		= array();
$list_count	= 10;		//-- 10개만
if(count($tmp_list) < 10) $list_count = count($tmp_list);

for($i = 0; $i < $list_count; $i++) {
	foreach($tmp_list[$i] as $key => $val) {
		$list[$i][$key]	= $val;
	}
}
?>