/** * 获得关键字的分词结果,并保存到数据库 * * @access public * @param string $keyword 关键词 * @return string */ function GetKeywords($keyword) { global $cfg_soft_lang; $keyword = cn_substr($keyword, 50); $row = $this->dsql->GetOne("SELECT spwords FROM `#@__search_keywords` WHERE keyword='" . addslashes($keyword) . "'; "); if (!is_array($row)) { if (strlen($keyword) > 7) { $sp = new SplitWord($cfg_soft_lang, $cfg_soft_lang); $sp->SetSource($keyword, $cfg_soft_lang, $cfg_soft_lang); $sp->SetResultType(2); $sp->StartAnalysis(TRUE); $keywords = $sp->GetFinallyResult(); $idx_keywords = $sp->GetFinallyIndex(); ksort($idx_keywords); $keywords = $keyword . ' '; foreach ($idx_keywords as $key => $value) { if (strlen($key) <= 3) { continue; } $keywords .= ' ' . $key; } $keywords = preg_replace("/[ ]{1,}/", " ", $keywords); //var_dump($idx_keywords);exit(); unset($sp); } else { $keywords = $keyword; } $inquery = "INSERT INTO `#@__search_keywords`(`keyword`,`spwords`,`count`,`result`,`lasttime`)\n VALUES ('" . addslashes($keyword) . "', '" . addslashes($keywords) . "', '1', '0', '" . time() . "'); "; $this->dsql->ExecuteNoneQuery($inquery); } else { $this->dsql->ExecuteNoneQuery("UPDATE `#@__search_keywords` SET count=count+1,lasttime='" . time() . "' WHERE keyword='" . addslashes($keyword) . "'; "); $keywords = $row['spwords']; } return $keywords; }
$smarty->assign('brand_list', get_brand_list()); $smarty->assign('action', 'form'); $smarty->assign('use_storage', $_CFG['use_storage']); $action = 'form'; } /* 初始化搜索条件 */ $keywords = ''; $tag_where = ''; if (!empty($_REQUEST['keywords'])) { /* 代码修改_START By www.68ecshop.com */ include_once 'includes/lib_splitword_www_68ecshop_com.php'; $Recordkw = str_replace(array("\\'"), array(''), trim($_REQUEST['keywords'])); $cfg_soft_lang_www_68ecshop_com = 'utf-8'; $sp_www_68ecshop_com = new SplitWord($cfg_soft_lang_www_68ecshop_com, $cfg_soft_lang_www_68ecshop_com); $sp_www_68ecshop_com->SetSource($Recordkw, $cfg_soft_lang_www_68ecshop_com, $cfg_soft_lang_www_68ecshop_com); $sp_www_68ecshop_com->SetResultType(1); $sp_www_68ecshop_com->StartAnalysis(TRUE); $word_www_68ecshop_com = $sp_www_68ecshop_com->GetFinallyResult(' '); //echo $word_www_68ecshop_com; $word_www_68ecshop_com = preg_replace("/[ ]{1,}/", " ", trim($word_www_68ecshop_com)); $replacef_www_68ecshop_com = explode(' ', $word_www_68ecshop_com); $keywords = 'AND ('; $goods_ids = array(); foreach ($replacef_www_68ecshop_com as $key => $val) { if ($key > 0 && $key < count($replacef_www_68ecshop_com) && count($replacef_www_68ecshop_com) > 1) { $keywords .= " AND "; } $val = mysql_like_quote(trim($val)); $sc_dsad = $_REQUEST['sc_ds'] ? " OR goods_desc LIKE '%{$val}%'" : ''; $keywords .= "(goods_name LIKE '%{$val}%' OR goods_sn LIKE '%{$val}%' OR keywords LIKE '%{$val}%' {$sc_dsad})"; $sql = 'SELECT DISTINCT goods_id FROM ' . $ecs->table('tag') . " WHERE tag_words LIKE '%{$val}%' ";
} $tjnum = $startdd; if ($limitSql != '') { $fquery = "SELECT arc.id,arc.title,arc.keywords,addon.body FROM `#@__archives` arc\n LEFT JOIN `#@__addonarticle` addon ON addon.aid=arc.id WHERE arc.channel='1' {$limitSql} "; $dsql->SetQuery($fquery); $dsql->Execute(); $sp = new SplitWord($cfg_soft_lang, $cfg_soft_lang); while ($row = $dsql->GetObject()) { if ($row->keywords != '') { continue; } $tjnum++; $id = $row->id; $keywords = ""; $sp->SetSource($row->title, $cfg_soft_lang, $cfg_soft_lang); $sp->SetResultType(2); $sp->StartAnalysis(TRUE); $titleindexs = $sp->GetFinallyIndex(); $sp->SetSource(Html2Text($row->body), $cfg_soft_lang, $cfg_soft_lang); $sp->SetResultType(2); $sp->StartAnalysis(TRUE); $allindexs = $sp->GetFinallyIndex(); if (is_array($allindexs) && is_array($titleindexs)) { foreach ($titleindexs as $k => $v) { if (strlen($keywords) >= 30) { break; } else { if (strlen($k) <= 2) { continue; } $keywords .= $k . ",";