public static function getTags($txt, $len = 10) { $do_fork = $do_unit = true; $do_multi = $do_prop = $pri_dict = true; PhpAnalysis::$loadInit = false; $pa = new PhpAnalysis('utf-8', 'utf-8', $pri_dict); //载入词典 $pa->LoadDict(); $pa->SetSource(self::filter_mark($txt)); $pa->resultType = 1; $pa->notSplitLen = 5; $pa->differMax = $do_multi; $pa->unitWord = $do_unit; $pa->StartAnalysis($do_fork); $ret = $pa->GetFinallyIndex(); if (!$ret) { return []; } $tags = array_keys(array_slice($ret, 0, $len, true)); return $tags; }
/** * 显示文章页 * * @param int $id 文章id */ public function articlePreview($id) { $article = Articles::find($id); $a_moreimg = Moreimg::where('a_id', $id)->get()->toArray(); array_unshift($a_moreimg, array('title' => $article->title, 'img' => $article->img)); $images = array(); if (count($a_moreimg)) { $i = 0; foreach ($a_moreimg as $a_img) { $images[$i]['title'] = $a_img['title']; $images[$i]['image'] = $this->source_dir . 'l/articles/' . $a_img['img']; $i++; } } $list_id = Articles::where('c_id', $article->c_id)->where($this->type . '_show', '1')->orderBy('is_top', 'desc')->orderBy('created_at', 'desc')->select('id', 'title', 'img', 'introduction', 'created_at')->lists('id'); foreach ($list_id as $key => $val) { $article_prev = NULL; $article_next = NULL; if ($val == $id) { if ($key != 0) { $prev_id = $list_id[$key - 1]; $article_prev = Articles::find($prev_id); } if ($key < count($list_id) - 1) { $next_id = $list_id[$key + 1]; $article_next = Articles::find($next_id); } break; } } $result = $this->pagePublic($article->c_id); foreach ($result['navs'] as $nav) { if ($nav['current'] == 1) { $pagenavs = $nav['childmenu']; break; } else { $pagenavs = []; } } $result['pagenavs'] = $pagenavs; $result['posnavs'] = $this->getPosNavs($article->c_id); $result['title'] = $article->title; $result['keywords'] = $article->keywords; $result['description'] = $article->introduction; $result['article']['title'] = $article->title; $result['article']['keywords'] = $article->keywords; $result['article']['description'] = $article->introduction; $result['article']['viewcount'] = '<em id="article-viewcount">0</em>'; $article_type = Articles::leftJoin('classify', 'classify.id', '=', 'article.c_id')->where('article.id', $id)->pluck('article_type'); if ($article_type == 1) { //新闻内容 $viewname = 'content-news'; } elseif ($article_type == 2) { //产品内容 $viewname = 'content-product'; } else { //跳转404 } //关联文章查询 $pa = new PhpAnalysis(); $pa->SetSource($article->title); //设置分词属性 $pa->resultType = 2; $pa->differMax = true; $pa->StartAnalysis(); //获取你想要的结果 $keywords = $pa->GetFinallyIndex(); if (count($keywords)) { $relation_where = ""; foreach ($keywords as $key => $word) { $relation_where .= "or title like '%{$key}%' "; } $relation_where = ltrim($relation_where, 'or'); $prefix = Config::get('database.connections.mysql.prefix'); $related_data = DB::select("select id,title,img as image,introduction,created_at,c_id from {$prefix}article where cus_id={$this->cus_id} and ({$relation_where})"); $related = array(); if (count($related_data)) { foreach ($related_data as $val) { $temp_arr = []; $temp_arr['title'] = $val->title; $temp_arr['description'] = $val->introduction; $temp_arr['image'] = $this->source_dir . 'l/articles/' . $val->image; if ($this->showtype == 'preview') { $temp_arr['link'] = $this->domain . '/detail/' . $val->id; $temp_arr['category']['link'] = $this->domain . '/category/' . $val->id . '.html'; } else { $temp_arr['link'] = $this->domain . '/detail/' . $val->id . '.html'; $temp_arr['category']['link'] = $this->domain . '/category/' . $val->id . '.html'; } $temp_arr['pubdate'] = $val->created_at; $temp_arr['pubtimestamp'] = strtotime($val->created_at); $a_c_info = Classify::where('id', $val->c_id)->first(); $temp_arr['category']['name'] = $a_c_info->name; $temp_arr['category']['en_name'] = $a_c_info->en_name; $temp_arr['category']['icon'] = '<i class="iconfont">' . $a_c_info->icon . '</i>'; $related[] = $temp_arr; } } } //dd($article_prev); if ($this->showtype == 'preview') { if ($article_next === NULL) { $result['article']['next']['title'] = '已经是最后一篇'; $result['article']['next']['link'] = ''; } else { $result['article']['next']['title'] = $article_next->title; $result['article']['next']['link'] = $this->domain . '/detail/' . $article_next->id; } if ($article_prev === NULL) { $result['article']['prev']['title'] = '已经是第一篇'; $result['article']['prev']['link'] = ''; } else { $result['article']['prev']['title'] = $article_prev->title; $result['article']['prev']['link'] = $this->domain . '/detail/' . $article_prev->id; } $result['article']['image'] = $this->source_dir . 'l/articles/' . $article->img; $result['article']['images'] = $images; $result['article']['content'] = $article->content; } else { if ($article_next === NULL) { $result['article']['next']['title'] = '已经是最后一篇'; $result['article']['next']['link'] = ''; } else { $result['article']['next']['title'] = $article_next->title; $result['article']['next']['link'] = $this->domain . '/detail/' . $article_next->id . '.html'; } if ($article_prev === NULL) { $result['article']['prev']['title'] = '已经是第一篇'; $result['article']['prev']['link'] = ''; } else { $result['article']['prev']['title'] = $article_prev->title; $result['article']['prev']['link'] = $this->domain . '/detail/' . $article_prev->id . '.html'; } $result['article']['image'] = $this->source_dir . 'l/articles/' . $article->img; $result['article']['images'] = $images; $result['article']['content'] = preg_replace('/\\/customers\\/' . $this->customer . '/i', '', $article->content); } $result['article']['description'] = $article->introduction; $result['article']['pubdate'] = $article->created_at; $result['article']['pubtimestamp'] = strtotime($article->created_at); $result['article']['category'] = $result['posnavs'][count($result['posnavs']) - 1]; $result['related'] = $related; $json_keys = $this->getJsonKey($viewname . '.html'); if (count($json_keys)) { foreach ($json_keys as $key) { $result[$key] = $this->detailList($this->pagedata($key)); } } $smarty = new Smarty(); $smarty->setTemplateDir(app_path('views/templates/' . $this->themename)); $smarty->setCompileDir(app_path('storage/views/compile')); $smarty->registerPlugin('function', 'mapExt', array('PrintController', 'createMap')); $smarty->registerPlugin('function', 'shareExt', array('PrintController', 'createShare')); $smarty->assign($result); $smarty->display($viewname . '.html'); //return View::make('templates.'.$this->themename.'.'.$viewname,$result); }
$pa->StartAnalysis( $do_fork ); print_memory('执行分词', $memory_info); $okresult = $pa->GetFinallyResult(' ', $do_prop); print_memory('输出分词结果', $memory_info); $pa_foundWordStr = $pa->foundWordStr; function print_memory($rc, &$infostr) { global $ntime; $cutime = microtime(true); $etime = sprintf('%0.4f', $cutime - $ntime); $m = sprintf('%0.2f', memory_get_usage()/1024/1024); $infostr .= "{$rc}: {$m} MB 用时:{$etime} 秒<br />\n"; $ntime = $cutime; } $ntime = '';*/ $teststr = '我们是共产党我们'; $pa = new PhpAnalysis(); $pa->SetSource($teststr); //设置分词属性 $pa->resultType = 2; $pa->differMax = true; $pa->StartAnalysis(); echo '<pre>'; //获取你想要的结果 print_r($pa->GetFinallyIndex());