日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 基于gbk和 Ascii把汉字转换为拼音

發布時間:2023/12/14 php 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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把汉字转换为拼音的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。