国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 幫助中心 > 正文

織夢CMS中文轉(zhuǎn)換拼音函數(shù)研究

2019-09-08 23:51:05
字體:
供稿:網(wǎng)友
  【黑.客.武.林】導(dǎo)讀:析的不對請高人指點! 1 function SpGetPinyin( $str , $ishead = 0 , $isclose = 1 )    2 {    3 // 全部數(shù)組$pinyins    4 global $pinyins ;    5 $restr = "" ; // 初始化返回字符串變量    6 $str = trim ( $str ); // 去空格    7 $slen = strlen ( $str ); // 得到字...
 
 
  正文:

 織夢中添加分類時填寫中文分類名可以自動轉(zhuǎn)換成對應(yīng)的拼音,該函數(shù)位于include/inc/inc_fun_funAdmin.php 第4行到32行.織夢版本為3.1.該函數(shù)轉(zhuǎn)換需要的中文拼音數(shù)據(jù)庫位于include/data/pinyin.db.
  詳細分析請看代碼注釋,如有地方分析的不對請高人指點! 1 function SpGetPinyin( $str , $ishead = 0 , $isclose = 1 )
   2 {
   3 // 全部數(shù)組$pinyins
   4 global $pinyins ;
   5 $restr = "" ; // 初始化返回字符串變量
   6 $str = trim ( $str ); // 去空格
   7 $slen = strlen ( $str ); // 得到字符串長度
   8 if ( $slen < 2 ) return $str ; // 如果小于2則返回
   9 if ( count ( $pinyins ) == 0 ) // 如果全局數(shù)組$pingyins長度為0
  10 {
  11 $fp = fopen ( dirname ( __FILE__ ) . " /../data/pinyin.db " , " r " ); // 讀取pinyin數(shù)據(jù)庫
  12 while ( ! feof ( $fp )) // 循環(huán)至文件結(jié)束位置
  13 {
  14 $line = trim ( fgets ( $fp )); // 從文件指針中讀取一行并去除空格
  15 //$line[0].$line[1]中文字,作為數(shù)組索引
  16 //substr($line,3,strlen($line)-3)得到該字對應(yīng)的拼音
  17 $pinyins [ $line [ 0 ] . $line [ 1 ]] = substr ( $line , 3 , strlen ( $line ) - 3 );
  18 }
  19 fclose ( $fp );
  20 }
  21 for ( $i = 0 ; $i < $slen ; $i ++ )
  22 {
  23 if ( ord ( $str [ $i ]) > 0x80 ) // 如果第i的字符的ASCII編碼大于0x80(確認為中文字)
  24 {
  25
  26 $c = $str [ $i ] . $str [ $i + 1 ]; // 拼接字符編碼
  27 $i ++ ;
  28 if ( isset ( $pinyins [ $c ])) // 如果$pinyin數(shù)組中含有該索引
  29 {
  30 // $ishead == 0 取全部拼音
  31 if ( $ishead == 0 ) $restr .= $pinyins [ $c ];
  32 // 只取拼音第一個字母
  33 else $restr .= $pinyins [ $c ][ 0 ];
  34 } else $restr .= " _ " ; // 如果沒有索引則使用_替代
  35 }
  36 else if ( eregi ( " [a-z0-9] " , $str [ $i ]) ) // 如果不是中文字是字母和數(shù)字
  37 {
  38 $restr .= $str [ $i ]; // 直接連接字符串
  39 }
  40 else // 如果都不是
  41 {
  42 $restr .= " _ " ; // 使用_替代
  43 }
  44 }
  45 // 根據(jù)參數(shù)注銷$pinyins
  46 if ( $isclose == 0 ) unset ( $pinyins );
  47 // 返回轉(zhuǎn)換好的拼音
  48 return $restr ;
  49 }

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 古浪县| 石柱| 阿克苏市| 荥经县| 新密市| 南城县| 宁阳县| 永宁县| 安多县| 平阴县| 东阿县| 宁河县| 穆棱市| 德阳市| 乌兰察布市| 普洱| 丹寨县| 临武县| 罗山县| 项城市| 申扎县| 东阿县| 桐庐县| 会理县| 辽宁省| 泌阳县| 新邵县| 湄潭县| 乐东| 江津市| 通州区| 高碑店市| 吉安县| 五指山市| 青海省| 克什克腾旗| 廊坊市| 沂南县| 雷州市| 额济纳旗| 龙海市|