Example #1
0
 /**
  *
  * @access public
  * @return void
  * @author majiechao
  *         @修改日期 2015-09-15 16:18:11
  */
 public function wordAction()
 {
     $text = $this->request->get('text', 'string', '');
     if (empty($text)) {
         exit('[]');
     }
     $mss = mss_create("confilter_main", -1);
     $timestamp = mss_timestamp($mss);
     $is_ready = mss_is_ready($mss);
     if ($is_ready) {
         // 如果redis dict最后更新时间大于mss实例创建时间,就重载
         $updateTime = $this->di['confilter']->get($this->dictUpdateKey);
         if ($updateTime > $timestamp) {
             mss_destroy($mss);
             $mss = mss_create("confilter_main", -1);
             $timestamp = mss_timestamp($mss);
             $is_ready = mss_is_ready($mss);
         }
     } else {
         $this->loadDict($mss, $this->dictKey);
     }
     $matches = mss_search($mss, $text);
     $word_arr = array();
     foreach ($matches as $key => $value) {
         $word_arr[] = $value[0];
     }
     $json = json_encode($word_arr);
     echo $json;
     exit;
 }
Example #2
0
 /**
  * 提取关键字
  * @return json
  * @author 彭东江
  **/
 public function word($text)
 {
     $redis = \Phalcon\DI::getDefault()->get("redis");
     if (!isset($text) || empty($text)) {
         exit;
     }
     //查询词语转换成大写
     $text = strtolower($text);
     $mss = mss_create("default", -1);
     $timestamp = mss_timestamp($mss);
     $is_ready = mss_is_ready($mss);
     if ($is_ready) {
         //如果redis dict最后更新时间大于mss实例创建时间,就重载
         $updateTime = $redis->get($this->dictUpdateKey);
         if ($updateTime > $timestamp) {
             mss_destroy($mss);
             $mss = mss_create("default");
             $timestamp = mss_timestamp($mss);
             $is_ready = mss_is_ready($mss);
         }
     }
     if (!$is_ready) {
         $this->loadDict($mss, $this->dictKey);
     }
     $mode = '/[^\\x{4e00}-\\x{9fa5}|a-z|\\d]/ui';
     //只保留中文英文数字
     $new_text = preg_replace($mode, '', $text);
     $matches = mss_search($mss, $new_text);
     $word_arr = array();
     foreach ($matches as $key => $value) {
         $word_arr[] = $value[0];
     }
     $json = json_encode($word_arr);
     return $json;
 }
Example #3
0
        }
        $line = explode(":", $line, 2);
        if (count($line) == 2) {
            mss_add($mss, trim($line[0]), trim($line[1]));
        } else {
            mss_add($mss, trim($line[0]));
        }
    }
}
$mss = mss_create("example");
$timestamp = mss_timestamp($mss);
$is_ready = mss_is_ready($mss);
if ($is_ready) {
    $stat = stat("example.dic");
    if ($stat['mtime'] > $timestamp) {
        mss_destroy($mss);
        $mss = mss_create("example");
        $timestamp = mss_timestamp($mss);
        $is_ready = mss_is_ready($mss);
    }
}
if (!$is_ready) {
    echo "Load dict\n";
    load_dict($mss, "example.dic");
}
$text = file_get_contents("example.txt");
//
//
echo "mss_creation: " . date("Y-m-d H:i:s", $timestamp) . "\n";
//
//