특정 기간동안 검색 엔진별 접속 수 Excel로 변환하기
작업 중인 사이트에 사용하려고 만들어본 특정 기간동안의 검색 엔진의 접속수 구하는 코드이다. 그누보드에서
사용해도 별 무리는 없을 것 같다. 물론 영카트4에 사용해도 무리가 없을 듯 하다.
include_once(“./_common.php”);
// 검색엔진 도메인
$search_engine = array(“naver.com”, “daum.net”, “nate.com”, “msn.com”, “yahoo.com”, “paran.com”, “zum.com”);
if(!$to_date || $to_date > $g4[time_ymd]) {
$to_date = $g4[time_ymd];
}
if(!$fr_date) {
$fr_date = date(“Y-m-d”, strtotime(“-6 days” ,strtotime($to_date)));
}
$sql_common = ” from $g4[visit_table] “;
$sql_search = ” where vi_date between ‘$fr_date’ and ‘$to_date’ “;
$sql_order = ” order by vi_date asc “;
$sql = ” select vi_date
$sql_common
$sql_search
group by vi_date
$sql_order “;
$result = sql_query($sql);
// 라이브러리 인클루드
require_once(“$g4[path]/lib/PHPExcel.php”);
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set properties
// Excel 문서 속성을 지정해주는 부분이다. 적당히 수정하면 된다.
$objPHPExcel->getProperties()->setCreator(“관리자”)
->setLastModifiedBy(“관리자”)
->setTitle(“방문경로수”)
->setSubject(“방문경로수”)
->setDescription(“방문경로수”)
->setKeywords(“방문경로수”)
->setCategory(“VISIT”);
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue(“A1”, “$fr_date ~ $to_date 방문경로 수”)
->setCellValue(“A2”, “일자”)
->setCellValue(“B2”, “네이버”)
->setCellValue(“C2”, “다음”)
->setCellValue(“D2”, “네이트”)
->setCellValue(“E2”, “MSN”)
->setCellValue(“F2”, “야후”)
->setCellValue(“G2”, “파란”)
->setCellValue(“H2”, “ZUM”);
for($i = 0; $row = sql_fetch_array($result); $i++) {
$vi_count = array();
for($k = 0; $k < count($search_engine); $k++) {
$regexp = str_replace(“.”, “\.”, $search_engine[$k]);
$sql = ” select count(vi_id) as cnt from $g4[visit_table] where vi_referer REGEXP ‘$regexp’ and vi_date = ‘$row[vi_date]’ “;
$vi = sql_fetch($sql);
if($vi[cnt]) {
$cnt = $vi[cnt];
} else {
$cnt = 0;
}
array_push($vi_count, $cnt);
}
$idx = $i + 3;
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue(“A$idx”, “$row[vi_date]”)
->setCellValue(“B$idx”, “$vi_count[0]”)
->setCellValue(“C$idx”, “$vi_count[1]”)
->setCellValue(“D$idx”, “$vi_count[2]”)
->setCellValue(“E$idx”, “$vi_count[3]”)
->setCellValue(“F$idx”, “$vi_count[4]”)
->setCellValue(“G$idx”, “$vi_count[5]”)
->setCellValue(“H$idx”, “$vi_count[6]”);
}
// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle(“방문경로수”);
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
$filename = iconv(“UTF-8”, “EUC-KR”, “방문경로수”);
// Redirect output to a client’s web browser (Excel5)
header(‘Content-Type: application/vnd.ms-excel’);
header(‘Content-Disposition: attachment;filename=”‘ . $filename . ‘.xls”‘);
header(‘Cache-Control: max-age=0’);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel5’);
$objWriter->save(‘php://output’);
exit;
?>
자료의 Excel 파일변환은 2011/03/17 – PHP에서 Excel 파일을 만들 수 있는 PHPExcel를
사용했다.