Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 /**
  * 显示文章页
  *
  * @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);
 }
Esempio n. 3
0
File: demo.php Progetto: noikiy/yg
$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}: &nbsp;{$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());