<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ChineseUtilPHP 中文工具類庫

          聯(lián)合創(chuàng)作 · 2023-09-29 05:08

          ChineseUtil

          PHP 中文工具類,支持漢字轉(zhuǎn)拼音、拼音分詞、簡繁互轉(zhuǎn)。

          PHP Chinese Tool class, support Chinese pinyin, pinyin participle, simplified and traditional conversion

          目前本類庫擁有的三個功能,都是在實際開發(fā)過程中整理出來的。這次使用的數(shù)據(jù)不同于以前我開源過漢字轉(zhuǎn)拼音和簡繁互轉(zhuǎn),數(shù)據(jù)都是從字典網(wǎng)站采集下來的,比以前的數(shù)據(jù)更加準確。

          由于中文的博大精深,字有多音字,簡體字和繁體字也有多種對應(yīng)。并且本類庫返回的所有結(jié)果,均為包含所有組合的數(shù)組。

          本類庫字典數(shù)據(jù)總共收錄 73925 個漢字,包括:3955 個簡體字,1761 個繁體字,68209 個其它漢字。

          內(nèi)存占用

          類庫第一個版本發(fā)布開始,群里朋友就展開了激烈的討論,最大的問題就在于內(nèi)存占用以及性能問題上。經(jīng)過我不斷嘗試幾種方案,最終決定設(shè)置三種模式,來適應(yīng)不同用戶之間的需求。

          我已經(jīng)嘗試過 Redis,速度比 SQLite 慢 3 倍,沒有必要加入支持。所以目前來看,SQLite 模式性價比最高!

          性能模式 (Memory)

          使用 SQLite 作為數(shù)據(jù)載體,一次性加載所有數(shù)據(jù)到變量,內(nèi)存占用高(80 MB),性能最佳。

          適合用于運行 Cli 任務(wù)。

          需要 PDO 和 PDO_SQLITE 擴展支持。

          通用模式 (SQLite)

          使用 SQLite 作為數(shù)據(jù)載體,每次查詢都通過 SQL 查詢,內(nèi)存占用低(600+ KB),性能中等。

          適合用于大部分場景。

          需要 PDO 和 PDO_SQLITE 擴展支持。

          兼容模式 (JSON)

          使用精簡過的 JSON 數(shù)據(jù)作為數(shù)據(jù)載體,一次性加載所有數(shù)據(jù)到變量,內(nèi)存占用中(28 MB),性能差。

          內(nèi)存占用量以實際為準,根據(jù)版本、擴展等環(huán)境的不同,占用的內(nèi)存容量不一樣,上述值為我電腦上的情況,僅供參考。

          適合無法使用 PDO 的場景。

          由于精簡了數(shù)據(jù),一些拼音結(jié)果需要經(jīng)過代碼計算處理才可以得出,所以性能較差。

          默認情況下,優(yōu)先使用通用模式,如果環(huán)境不支持 PDO 將采用兼容模式。

          你可以在未執(zhí)行任何初始化或者轉(zhuǎn)換處理之前,設(shè)置使用何種模式運行。

          // 設(shè)為性能模式
          Chinese::setMode('Memory');
          // 設(shè)為通用模式
          Chinese::setMode('SQLite');
          // 設(shè)為兼容模式
          Chinese::setMode('JSON');
          

          無論何種模式,拼音分詞所需數(shù)據(jù)總是從 JSON 數(shù)據(jù)中加載。

          使用說明

          Composer 直接安裝

          composer require yurunsoft/chinese-util

          Composer 項目配置引入

          "require": {
              "yurunsoft/chinese-util" : "~1.0"
          }

          功能

          漢字轉(zhuǎn)拼音

          use \Yurun\Util\Chinese;
          use \Yurun\Util\Chinese\Pinyin;
          $string = '恭喜發(fā)財!';
          echo $string, PHP_EOL;
          
          echo '全拼:', PHP_EOL;
          var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN));
          
          echo '首字母:', PHP_EOL;
          var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN_FIRST));
          
          echo '讀音:', PHP_EOL;
          var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN_SOUND));
          
          echo '讀音數(shù)字:', PHP_EOL;
          var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN_SOUND_NUMBER));
          
          echo '自選返回格式 + 以文本格式返回 + 自定義分隔符:', PHP_EOL;
          var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN | Pinyin::CONVERT_MODE_PINYIN_SOUND_NUMBER, ' '));
          
          echo '所有結(jié)果:', PHP_EOL;
          var_dump(Chinese::toPinyin($string));
          /**
          所有結(jié)果:
          array(4) {
            ["pinyin"]=>
            array(1) {
              [0]=>
              array(5) {
                [0]=>
                string(4) "gong"
                [1]=>
                string(2) "xi"
                [2]=>
                string(2) "fa"
                [3]=>
                string(3) "cai"
                [4]=>
                string(3) "!"
              }
            }
            ["pinyinSoundNumber"]=>
            array(1) {
              [0]=>
              array(5) {
                [0]=>
                string(5) "gong1"
                [1]=>
                string(3) "xi3"
                [2]=>
                string(3) "fa1"
                [3]=>
                string(4) "cai2"
                [4]=>
                string(3) "!"
              }
            }
            ["pinyinFirst"]=>
            array(1) {
              [0]=>
              array(5) {
                [0]=>
                string(1) "g"
                [1]=>
                string(1) "x"
                [2]=>
                string(1) "f"
                [3]=>
                string(1) "c"
                [4]=>
                string(3) "!"
              }
            }
            ["pinyinSound"]=>
            array(1) {
              [0]=>
              array(5) {
                [0]=>
                string(5) "gōng"
                [1]=>
                string(3) "xǐ"
                [2]=>
                string(3) "fā"
                [3]=>
                string(4) "cái"
                [4]=>
                string(3) "!"
              }
            }
          }
          全拼:
          array(1) {
            ["pinyin"]=>
            array(1) {
              [0]=>
              array(5) {
                [0]=>
                string(4) "gong"
                [1]=>
                string(2) "xi"
                [2]=>
                string(2) "fa"
                [3]=>
                string(3) "cai"
                [4]=>
                string(3) "!"
              }
            }
          }
          首字母:
          array(1) {
            ["pinyinFirst"]=>
            array(1) {
              [0]=>
              array(5) {
                [0]=>
                string(1) "g"
                [1]=>
                string(1) "x"
                [2]=>
                string(1) "f"
                [3]=>
                string(1) "c"
                [4]=>
                string(3) "!"
              }
            }
          }
          讀音:
          array(1) {
            ["pinyinSound"]=>
            array(1) {
              [0]=>
              array(5) {
                [0]=>
                string(5) "gōng"
                [1]=>
                string(3) "xǐ"
                [2]=>
                string(3) "fā"
                [3]=>
                string(4) "cái"
                [4]=>
                string(3) "!"
              }
            }
          }
          讀音數(shù)字:
          array(1) {
            ["pinyinSoundNumber"]=>
            array(1) {
              [0]=>
              array(5) {
                [0]=>
                string(5) "gong1"
                [1]=>
                string(3) "xi3"
                [2]=>
                string(3) "fa1"
                [3]=>
                string(4) "cai2"
                [4]=>
                string(3) "!"
              }
            }
          }
          自選返回格式 + 以文本格式返回 + 自定義分隔符:
          array(2) {
            ["pinyin"]=>
            array(1) {
              [0]=>
              string(18) "gong xi fa cai !"
            }
            ["pinyinSoundNumber"]=>
            array(1) {
              [0]=>
              string(22) "gong1 xi3 fa1 cai2 !"
            }
          }
           * /
          

          拼音分詞

          use \Yurun\Util\Chinese;
          $string2 = 'xianggang';
          echo '"', $string2, '"的分詞結(jié)果:', PHP_EOL;
          var_dump(Chinese::splitPinyin($string2));
          /**
          輸出結(jié)果:
          "xianggang"的分詞結(jié)果:
          array(2) {
            [0]=>
            string(12) "xi ang gang "
            [1]=>
            string(11) "xiang gang "
          }
           * /
          

          簡繁互轉(zhuǎn)

          use \Yurun\Util\Chinese;
          $string3 = '中華人民共和國!恭喜發(fā)財!';
          echo '"', $string3, '"的簡體轉(zhuǎn)換:', PHP_EOL;
          var_dump(Chinese::toSimplified($string3));
          echo '"', $string3, '"的繁體轉(zhuǎn)換:', PHP_EOL;
          var_dump(Chinese::toTraditional($string3));
          /**
          輸出結(jié)果:
          "中華人民共和國!恭喜發(fā)財!"的簡體轉(zhuǎn)換:
          array(1) {
            [0]=>
            string(39) "中華人民共和國!恭喜發(fā)財!"
          }
          "中華人民共和國!恭喜發(fā)財!"的繁體轉(zhuǎn)換:
          array(1) {
            [0]=>
            string(39) "中華人民共和國!恭喜發(fā)財!"
          }
           * /
          瀏覽 26
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲色情电影网 | 久久久久久少妇 | 豆花视频在线欧美亚洲自拍 | 后入美女网站 | 午夜噜噜 |