php 基于gbk和 Ascii把汉字转换为拼音
生活随笔
收集整理的這篇文章主要介紹了
php 基于gbk和 Ascii把汉字转换为拼音
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在php開發中有把漢字轉換為拼音的需求
這里主要說明Ascii和gbk 格式的漢字轉為拼音的內容,如果你是utf-8的,那就通過iconv()函數轉utf-8為gbk,在進行拼音轉換
//Ascii轉拼音 function?asc_to_pinyin($asc,$pyarr){ if($asc<128){ return?chr($asc); }elseif(isset($pyarr[$asc])){ return?$pyarr[$asc]; }else{ foreach($pyarr?as?$id=>$p){ if($id>=$asc){ return?$p; } } } } //gbk轉拼音 function?gbk_to_pinyin($txt){ $l?=?strlen($txt);??//返回字符串長度strlen("證人")以字節為單位,gbk編碼下,一個漢字2個字節,所有“證人”長度為4。區別于mb_strlen()已個數為單位返回長度,mb_strlen(“證人”);返回長度2 $i?=?0; $pyarr?=?array(); $py?=?array(); $filename?=?'gb-pinyin.table';??//拼音表文件,這里路徑根據文件位置自行設置 $fp?=?fopen($filename,'r'); while(!feof($fp)){ $p?=?explode("-",fgets($fp,32));?//fgets()經常和while循環配合使用,因為fgets()讀取內容是以行為單位的。讀完一行就立馬返回(前提是這一行沒有到達文件末尾,并且是在設定的長度范圍內)。所以要在循環中一行一行讀取。從?handle?指向的文件中讀取一行并返回長度最多為?length?-?1?字節的字符串。碰到換行符(包括在返回值中)、EOF?或者已經讀取了?length?-?1?字節后停止(看先碰到那一種情況)。如果沒有指定?length,則默認為?1K,或者說?1024?字節。 $pyarr[intval($p[1])]?=?trim($p[0]); } fclose($fp); ksort($pyarr); while($i<$l){ $tmp?=?ord($txt[$i]); if($tmp>=128){
點擊鏈接查看完整全文:
轉載于:http://www.3qphp.com/php/code/116.html
總結
以上是生活随笔為你收集整理的php 基于gbk和 Ascii把汉字转换为拼音的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python绘制网格线在原图上面_图像上
- 下一篇: 动态规划算法php,php算法学习之动态