"; $sql = "SELECT keyword, count, searchengine ". " FROM " .$ecs->table('keywords'). " WHERE date >= '$start_date' AND date <= '" .$end_date. "'"; if (isset($_POST['filter'])) { $sql .= ' AND '. db_create_in($_POST['filter'], 'searchengine'); } $res = $db->query($sql); $search = array(); $searchengine = array(); $keyword = array(); while ($val = $db->fetchRow($res)) { $keyword[$val['keyword']] = 1; $searchengine[$val['searchengine']][$val['keyword']] = $val['count']; } $general_xml .= ""; foreach($keyword AS $key => $val) { $key = str_replace('&','&',$key); $key = str_replace('>','>',$key); $key = str_replace('<','<',$key); $key =htmlspecialchars($key); $general_xml .= ""; } $general_xml .= "\n"; $i = 0; foreach($searchengine AS $key => $val) { $general_xml .= ""; foreach($keyword AS $k => $v) { $count = 0; if(!empty($searchengine[$key][$k])) { $count = $searchengine[$key][$k]; } $general_xml .= ""; } $general_xml .= ""; $i++; } $general_xml .= ''; /* 模板赋值 */ $smarty->assign('ur_here', $_LANG['searchengine_stats']); $smarty->assign('general_data', $general_xml); $searchengines = array('ecshop' => false, 'MSLIVE' => false, 'BAIDU' => false, 'GOOGLE' => false, 'GOOGLE CHINA' => false, 'CT114' => false, 'SOSO' => false); if (isset($_POST['filter'])) { foreach ($_POST['filter'] AS $v) { $searchengines[$v] = true; } } $smarty->assign('searchengines', $searchengines); /* 显示日期 */ $smarty->assign('start_date', $start_date); $smarty->assign('end_date', $end_date); $filename = local_date('Ymd', $start_date) . '_' . local_date('Ymd', $end_date); $smarty->assign('action_link', array('text' => $_LANG['down_search_stats'], 'href' => 'searchengine_stats.php?act=download&start_date=' . $start_date . '&end_date=' . $end_date . '&filename=' . $filename)); $smarty->assign('lang', $_LANG); /* 显示页面 */ assign_query_info(); $smarty->display('searchengine_stats.htm'); } elseif ($_REQUEST['act'] == 'download') { $start_date = empty($_REQUEST['start_date']) ? strtotime('-20 day') : intval($_REQUEST['start_date']); $end_date = empty($_REQUEST['end_date']) ? time() : intval($_REQUEST['end_date']); $filename = $start_date . '_' . $end_date; $sql = "SELECT keyword, count,searchengine ". " FROM " .$ecs->table('keywords'). " WHERE date >= '$start_date' AND date <= '$end_date'"; $res = $db->query($sql); $searchengine = array(); $keyword = array(); while ($val = $db->fetchRow($res)) { $keyword[$val['keyword']] = 1; $searchengine[$val['searchengine']][$val['keyword']] = $val['count']; } header("Content-type: application/vnd.ms-excel; charset=utf-8"); header("Content-Disposition: attachment; filename=$filename.xls"); $data = "\t"; foreach ($searchengine AS $k => $v) { $data .= "$k\t"; } foreach ($keyword AS $kw => $val) { $data .= "\n$kw\t"; foreach ($searchengine AS $k => $v) { if (isset($searchengine[$k][$kw])) { $data .= $searchengine[$k][$kw] . "\t"; } else { $data .= "0" . "\t"; } } } echo ecs_iconv(EC_CHARSET, 'GB2312', $data) . "\t"; } ?>