php漢字轉(zhuǎn)拼音的示例
<?php
class Helper_Spell{
public $spellArray = array();
static public function getArray() {
return unserialize(file_get_contents('pytable_without_tune.txt'));
}
/**
* @desc 獲取字符串的首字母
* @param $string 要轉(zhuǎn)換的字符串
* @param $isOne 是否取首字母
* @param $upper 是否轉(zhuǎn)換為大寫
* @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); //將字符串拆分成數(shù)組
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 將字符串轉(zhuǎn)換成拼音字符串
* @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); //將字符串拆分成數(shù)組
$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 將字符串轉(zhuǎn)換成數(shù)組
* @param $str 要轉(zhuǎn)換的數(shù)組
* @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];
}
}
相關(guān)文章
jQuery+PHP發(fā)布的內(nèi)容進行無刷新分頁(Fckeditor)
這篇文章主要介紹了jQuery結(jié)合,將Fckeditor發(fā)布的內(nèi)容進行無刷新分頁,需要的朋友可以參考下2015-10-10php中0,null,empty,空,false,字符串關(guān)系的詳細介紹
本篇文章是對php中0,null,empty,空,false,字符串關(guān)系進行了詳細的分析介紹,需要的朋友參考下2013-06-06簡單談?wù)凱HP中的include、include_once、require以及require_once語句
include() 、require()語句包含并運行指定文件。這兩結(jié)構(gòu)在包含文件上完全一樣,唯一的區(qū)別是對于錯誤的處理。require()語句在遇到包含文件不存在,或是出錯的時候,就停止即行,并報錯。include()則繼續(xù)即行。2016-04-04php實現(xiàn)的Timer頁面運行時間監(jiān)測類
這篇文章主要介紹了php實現(xiàn)的Timer頁面運行時間監(jiān)測類,可實現(xiàn)按不同key檢測不同的運行時間,需要的朋友可以參考下2014-09-09PHP 自定義錯誤處理函數(shù)trigger_error()
trigger_error() 用于在用戶指定的條件下觸發(fā)一個錯誤消息。它與內(nèi)建的錯誤處理器一同使用,也可以與由 set_error_handler() 函數(shù)創(chuàng)建的用戶自定義函數(shù)使用2013-03-03PHP 事務(wù)處理數(shù)據(jù)實現(xiàn)代碼
PHP 事務(wù)處理數(shù)據(jù)實現(xiàn)代碼,需要的朋友可以參考下。2010-05-05PHP 實現(xiàn)多服務(wù)器共享 SESSION 數(shù)據(jù)
稍大一些的網(wǎng)站,通常都會有好幾個服務(wù)器,每個服務(wù)器運行著不同功能的模塊,使用不同的二級域名,而一個整體性強的網(wǎng)站,用戶系統(tǒng)是統(tǒng)一的,即一套用戶名、密碼在整個網(wǎng)站的各個模塊中都是可以登錄使用的。2009-08-08php轉(zhuǎn)換上傳word文件為PDF的方法【基于COM組件】
這篇文章主要介紹了php轉(zhuǎn)換上傳word文件為PDF的方法,結(jié)合實例形式分析了php基于COM組件針對word文件的格式轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2019-06-06