php 變量 可用拼音表示,php漢字轉拼音的示例

. 代碼如下:

class Helper_Spell{

public $spellArray = array();

static public function getArray() {

return unserialize(file_get_contents('pytable_without_tune.txt'));

}

/**

* @desc 獲取字符串的首字母

* @param $string 要轉換的字符串

* @param $isOne 是否取首字母

* @param $upper 是否轉換為大寫

* @return string

*

* 例如:getChineseFirstChar('我是作者') 首字符全部字母+小寫

* return "wo"

*

* 例如:getChineseFirstChar('我是作者',true) 首字符首字母+小寫

* return "w"

*

* 例如:getChineseFirstChar('我是作者',true,true) 首字符首字母+大寫

* return "W"

*

* 例如:getChineseFirstChar('我是作者',false,true) 首字符全部字母+大寫

* return "WO"

*/

static public function getChineseFirstChar($string,$isOne=false,$upper=false) {

$spellArray = self::getArray();

$str_arr = self::utf8_str_split($string,1); //將字符串拆分成數組

if(preg_match('/^[\x{4e00}-\x{9fa5}]+$/u',$str_arr[0])) { //判斷是否是漢字

$chinese = $spellArray[$str_arr[0]];

$result = $chinese[0];

}else {

$result = $str_arr[0];

}

$result = $isOne ? substr($result,0,1) : $result;

return $upper?strtoupper($result):$result;

}

/**

* @desc 將字符串轉換成拼音字符串

* @param $string 漢字字符串

* @param $upper 是否大寫

* @return string

*

* 例如:getChineseChar('我是作者'); 全部字符串+小寫

* return "wo shi zuo zhe"

*

* 例如:getChineseChar('我是作者',true); 首字母+小寫

* return "w s z z"

*

* 例如:getChineseChar('我是作者',true,true); 首字母+大寫

* return "W S Z Z"

*

* 例如:getChineseChar('我是作者',false,true); 首字母+大寫

* return "WO SHI ZUO ZHE"

*/

static public function getChineseChar($string,$isOne=false,$upper=false) {

global $spellArray;

$str_arr = self::utf8_str_split($string,1); //將字符串拆分成數組

$result = array();

foreach($str_arr as $char)

{

if(preg_match('/^[\x{4e00}-\x{9fa5}]+$/u',$char))

{

$chinese = $spellArray[$char];

$chinese? = $chinese[0];

}else{

$chinese=$char;

}

$chinese = $isOne ? substr($chinese,0,1) : $chinese;

$result[] = $upper ? strtoupper($chinese) : $chinese;

}

return implode(' ',$result);

}

/**

* @desc 將字符串轉換成數組

* @param $str 要轉換的數組

* @param $split_len

* @return array

*/

private function utf8_str_split($str,$split_len=1) {

if(!preg_match('/^[0-9]+$/', $split_len) || $split_len < 1) {

return FALSE;

}

$len = mb_strlen($str, 'UTF-8');

if ($len <= $split_len) {

return array($str);

}

preg_match_all('/.{'.$split_len.'}|[^\x00]{1,'.$split_len.'}$/us', $str, $ar);

return $ar[0];

}

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538899.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538899.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538899.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Opencv-Python:圖像尺寸、圖像的讀取、顯示、保存與復制

Opencv-Python&#xff1a;圖像尺寸、圖像的讀取、顯示、保存與復制 原創 2017年11月23日 21:30:494440在使用opencv的方法時&#xff0c;首先必須導入opencv包。新的opencv導入cv2&#xff0c;這里也和cv做了一個對比 [python] view plaincopy import cv2 一、圖像尺寸 圖像的…

寶塔面板服務器ip地址修改_「網站」快速搭建服務器環境及網站

目錄&#xff1a;「NAS」我的搭建NAS全過程在文章開頭我想說明的是&#xff0c;此文章中所使用的工具為 BT 面板即寶塔面板&#xff0c;適合小白使用但是對于想要提升個人能力來說&#xff0c; BT 面板并不是一個好選擇&#xff0c;而作為新手來說&#xff0c;可以使用該面板進…

redis啟動報錯-磁盤滿了

imjournal: fopen() failed for path: ‘/var/lib/rsyslog/imjournal.state.tmp’: Structure needs cleaning [v8.24.0-57.el7_9.1 try http://www.rsyslog.com/e/2013 ] 1.查看服務狀態 systemctl status rsyslog 2.嘗試重啟服務 systemctl restart rsyslog 3.查看分區占用情…

楊輝三角python_Python面試150題匯總,都是常問的面試題!

周末&#xff0c;Python面試題每日一題暫停更新&#xff0c;下面把最近整理的1-50篇Python面試文整理一下&#xff0c;平時文章都放在比較末尾&#xff0c;閱讀量都不高&#xff0c;相信很多人都沒看過&#xff0c;如果對于Python感興趣的&#xff0c;建議可以認真閱讀一下&…

java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.wifi.SCAN_RESULTS flg

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.nokia.wlanapp, PID: 18526java.lang.RuntimeException: Error receiving broadcast Intent { actandroid.net.wifi.SCAN_RESULTS flg0x4000010 (has extras【外部】) } in com.nokia.wlanapp.Receive…

shell 整數條件判斷

兩個整數的比較 整數1 -eq 整數2 判斷整數1是否和整數2相等(相等為真) 整數1 -ne 整數2 判斷整數1是否和整數2不相等(不相等位置) 整數1 -gt 整數2 判斷整數1是否大于整數2(大于為真) 整數1 -lt 整數2 判斷整數1是否小于整數2(小于為真) 整數1 -ge 整數2 判斷整數1是否大于等于…

php處理上傳文件的步驟,php文件上傳步驟

我們在開發網站的時候&#xff0c;經常會遇到需要制作文件上傳功能&#xff0c;下面我們就為大家介紹一下php制作文件上傳功能的詳細步驟。推薦教程&#xff1a;PHP視頻教程第一步&#xff1a;創建一個文件上傳表單允許用戶從表單上傳文件是非常有用的。請看下面這個供上傳文件…

matlab求傅里葉級數展開式_傅里葉級數:從向量的角度看函數

幫助你理解線性代數與機器學習緊密結合的核心內容下文節選自北大出版社《機器學習線性代數基礎》, [遇見]已獲授權許可. 這本書不同于傳統教材, 從新的角度來介紹線性代數的核心知識, 講解也很棒, 又剛好參加參加了當當每滿100-50的活動, 感興趣的朋友可以關注下. 傅里葉級數&a…

c++實現超聲回波包絡檢測_超聲波物位計的選用

超聲波物位計超聲波在氣體、液體和固體介質中以一定速度傳播時因被吸收而衰減&#xff0c;但衰減程度不同&#xff0c;在氣體中衰減最大&#xff0c;而在固體中衰減最小&#xff1b;當超聲波穿越兩種不同介質構成的分界面時會產生反射和折射&#xff0c;且當這兩種介質的聲阻抗…

Android應用開發:CardView的使用及兼容

原文&#xff1a;http://blog.csdn.net/airk000/article/details/39520977 點擊閱讀原文 --------------------------------------------------------------- 引言 在Google I/O 2014上&#xff0c;Google公布了Android L Preview版本&#xff0c;此版本的UI有了非常大的改變…

云海技術u盤怎么恢復成普通盤_BITLOCKER加密中斷數據無法讀取恢復一例

同行求助此問題&#xff0c;密碼客戶是知道的&#xff0c;輸入密碼后提示如圖&#xff1a;如果點擊RESUME則提示如下&#xff1a;無視提示關閉提示框后再次提示分區需要格式化&#xff1a;PC3000 DE中可以添加虛擬驅動器解析BITLOCKER加密的分區&#xff0c;但該例添加虛擬驅動…

git 未能順利結束(退出碼1)

按照這個博客上安裝完小烏龜git后&#xff1a;https://blog.csdn.net/jdsjlzx/article/details/51098588win10下安裝完烏龜git后無法上傳文件進行文件上傳時出現錯誤如下&#xff1a;git 未能順利結束&#xff08;退出碼1&#xff09;&#xff08;922ms2018/4/17 22&#xff1a…

php sql跳過前四條數據,mysql實現每組取前N條記錄的sql,以及后續的組數據量限制...

select a.msg_id, a.com_id, a.data, a.ctime from sns_user_03.user_request_86 a where 5 (select count(*) from sns_user_03.user_request_86 where uid8880386 and com_id a.app_id and msg_id a.msg_id ) order by a.ctime; 上面的sql實現分組查詢&#xff0c;select a.…

交際過程的兩個基本環節_男女相處,若不介意這些“小動作”,基本可以確定“關系曖昧”...

當你對我說再見的時候&#xff0c;我看到你的笑容里有祝福&#xff0c;眼神里卻有遺憾……——南明夫人愛情中最美好幸福的事&#xff0c;莫過于你深愛的人&#xff0c;恰好也鐘情于你。這種兩情相悅的愛情總是如此難得&#xff0c;讓人心生羨慕。這份甜蜜與美好&#xff0c;讓…

Android之NetworkOnMainThreadException異常

原文鏈接&#xff1a;http://blog.csdn.net/mad1989/article/details/25964495 點擊閱讀原文 ------------------------------------------------------------------ 看名字就應該知道&#xff0c;是網絡請求在MainThread中產生的異常 先來看一下官網的解釋&#xff1a; Cl…

中國信通院金融科技負責人韓涵:大數據是生產資料的變革,區塊鏈是生產關系的變革...

在近日召開的“2018中國金融科技產業峰會”上&#xff0c;中國信息通信研究院主任工程師、金融科技負責人韓涵正式發布了《中國金融科技前沿技術發展趨勢及應用場景研究報告》&#xff0c;詳細講解了A&#xff08;人工智能&#xff09;B&#xff08;區塊鏈&#xff09;C&#x…

php mysql 拼音首字母,Mysql應用MySQL查詢漢字的拼音首字母實例教程

《Mysql應用MySQL查詢漢字的拼音首字母實例教程》要點&#xff1a;本文介紹了Mysql應用MySQL查詢漢字的拼音首字母實例教程&#xff0c;希望對您有用。如果有疑問&#xff0c;可以聯系我們。導讀&#xff1a;最好的方法還是用 PHP 來取拼音首字母,在 MySQL 里新建一個字段來存放…

java簡單紙牌游戲_活動回顧 | 暢玩法語紙牌游戲

11月17日下午&#xff0c;20級小伙伴們迎來了第二次法語角活動&#xff01;這次外教Anne-Flore Vrac 老師為同學們安排了豐富有趣的法語紙牌游戲&#xff0c;快來一起回顧活動的精彩瞬間吧&#xff01;集體游戲一&#xff1a;從1到30老師首先帶領同學們進行了“從1到30”的小游…

人臉識別門禁_小區人臉識別門禁或取代傳統門禁刷卡方式

可以說&#xff0c;社區是一個人口聚集的小型社會。首先社區的人流量很大&#xff0c;進出是十分頻繁。其次&#xff0c;社區的大門以及各處進出口是業主與訪客、外來人員等進進出出最關鍵的通道。因此&#xff0c;每個社區都會有一套成型的門禁系統&#xff0c;常見的是使用門…

Java Thread.join()詳解

原文地址&#xff1a;http://www.open-open.com/lib/view/open1371741636171.html 點擊閱讀原文 ------------------------------------------------------------- 一、使用方式。 join是Thread類的一個方法&#xff0c;啟動線程后直接調用&#xff0c;例如&#xff1a; Thr…