Example #1
0
    /**
     * 载入词典
     *
     * @return void
     */
    static function LoadDict($maindic = '') {
        self::$addonDicFile = self::$addonDicFile;
        self::$mainDicFile = self::$mainDicFile;
        self::$mainDicFileZip = self::$mainDicFileZip;
        $startt = microtime(TRUE);
//正常读取文件
        $dicAddon = self::$addonDicFile;
        if ($maindic == '' || !file_exists($maindic)) {
            $dicWords = self::$mainDicFile;
        } else {
            $dicWords = $maindic;
            self::$mainDicFile = $maindic;
        }

//加载主词典(只打开)
        if (self::$isUnpacked) {
            self::$mainDicHand = fopen($dicWords, 'r');
        } else {
            self::$InportDict(self::$mainDicFileZip);
        }

//载入副词典
        $hw = '';
        $ds = file($dicAddon);
        foreach ($ds as $d) {
            $d = trim($d);
            if ($d == '')
                continue;
            $estr = substr($d, 1, 1);
            if ($estr == ':') {
                $hw = substr($d, 0, 1);
            } else {
                $spstr = _SP_;
                $spstr = iconv(UCS2, 'utf-8', $spstr);
                $ws = explode(',', $d);
                $wall = iconv('utf-8', UCS2, join($spstr, $ws));
                $ws = explode(_SP_, $wall);
                foreach ($ws as $estr) {
                    self::$addonDic[$hw][$estr] = strlen($estr);
                }
            }
        }
        self::$loadTime = microtime(TRUE) - $startt;
        self::$isLoadDic = TRUE;
    }