首頁 php教程 php手册 php获取中文字符拼音首字母实例

php获取中文字符拼音首字母实例

May 25, 2016 pm 04:44 PM
中文字元 首字母

在php中如果我们要获取汉字的拼音第一个字母我们先要了解asc码的范围码了,我们只要知道这个值上下限就可以使用php中的ord来获取我相关的汉字拼音了.

实例1,代码如下:

function getFirstCharter($str) { 
    if (emptyempty($str)) {return '';} 
    $fchar = ord($str{0}); 
    if ($fchar>=ord(&#39;A&#39;) && $fchar<=ord(&#39;z&#39;)) return strtoupper($str{0}); 
    $s1 = iconv(&#39;UTF-8&#39;, &#39;gb2312&#39;, $str); 
    $s2 = iconv(&#39;gb2312&#39;, &#39;UTF-8&#39;, $s1); 
    $s = $s2 == $str ? $s1 : $str; 
    $asc = ord($s{0})*256 + ord($s{1}) - 65536; 
    if ($asc>=-20319 && $asc<=-20284) return &#39;A&#39;; 
    if ($asc>=-20283 && $asc<=-19776) return &#39;B&#39;; 
    if ($asc>=-19775 && $asc<=-19219) return &#39;C&#39;; 
    if ($asc>=-19218 && $asc<=-18711) return &#39;D&#39;; 
    if ($asc>=-18710 && $asc<=-18527) return &#39;E&#39;; 
    if ($asc>=-18526 && $asc<=-18240) return &#39;F&#39;; 
    if ($asc>=-18239 && $asc<=-17923) return &#39;G&#39;; 
    if ($asc>=-17922 && $asc<=-17418) return &#39;H&#39;; 
    if ($asc>=-17417 && $asc<=-16475) return &#39;J&#39;; 
    if ($asc>=-16474 && $asc<=-16213) return &#39;K&#39;; 
    if ($asc>=-16212 && $asc<=-15641) return &#39;L&#39;; 
    if ($asc>=-15640 && $asc<=-15166) return &#39;M&#39;; 
    if ($asc>=-15165 && $asc<=-14923) return &#39;N&#39;; 
    if ($asc>=-14922 && $asc<=-14915) return &#39;O&#39;; 
    if ($asc>=-14914 && $asc<=-14631) return &#39;P&#39;; 
    if ($asc>=-14630 && $asc<=-14150) return &#39;Q&#39;; 
    if ($asc>=-14149 && $asc<=-14091) return &#39;R&#39;; 
    if ($asc>=-14090 && $asc<=-13319) return &#39;S&#39;; 
    if ($asc>=-13318 && $asc<=-12839) return &#39;T&#39;; 
    if ($asc>=-12838 && $asc<=-12557) return &#39;W&#39;; 
    if ($asc>=-12556 && $asc<=-11848) return &#39;X&#39;; 
    if ($asc>=-11847 && $asc<=-11056) return &#39;Y&#39;; 
    if ($asc>=-11055 && $asc<=-10247) return &#39;Z&#39;; 
    return null; 
}
登入後複製

例如:echo getFirstCharter("程序员3aj.cn"); // 结果将输出:C

实例二,代码如下:

<?php 
 
$limit=array( //gb2312 拼音排序 
    array(45217,45252), //A 
    array(45253,45760), //B 
    array(45761,46317), //C 
    array(46318,46825), //D 
    array(46826,47009), //E 
    array(47010,47296), //F 
    array(47297,47613), //G 
    array(47614,48118), //H 
    array(0,0),         //I 
    array(48119,49061), //J 
    array(49062,49323), //K 
    array(49324,49895), //L 
    array(49896,50370), //M 
    array(50371,50613), //N 
    array(50614,50621), //O 
    array(50622,50905), //P 
    array(50906,51386), //Q 
    array(51387,51445), //R 
    array(51446,52217), //S 
    array(52218,52697), //T 
    array(0,0),         //U 
    array(0,0),         //V 
    array(52698,52979), //W 
    array(52980,53688), //X 
    array(53689,54480), //Y 
    array(54481,55289), //Z 
); 
 
$str="A:这是一个测试程序1"; 
$str= iconv("UTF-8","gb2312", $str); 
echo $str."</br>"; 
$i=0; 
while($i<strlen($str) ) { 
    $tmp=bin2hex(substr($str,$i,1)); 
    if($tmp>=&#39;B0&#39;){ //汉字的开始 
        $t=getLetter(hexdec(bin2hex(substr($str,$i,2)))); 
        printf("%c",$t==-1 ? &#39;*&#39; : $t ); 
        $i+=2; 
    } 
    else{ 
        printf("%s",substr($str,$i,1)); 
        $i++; 
    } 
} 
 
function getLetter($num){ 
    global $limit; 
    $char_index=65; 
    foreach($limit as $k=>$v){ 
        if($num>=$v[0] && $num<=$v[1]){ 
            $char_index+=$k; 
            return $char_index; 
        } 
    } 
    return -1; 
}
登入後複製


教程网址:

欢迎收藏∩_∩但请保留本文链接。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1317
25
PHP教程
1268
29
C# 教程
1242
24
如何在PHP中處理中文字元的拼音排序問題? 如何在PHP中處理中文字元的拼音排序問題? Sep 05, 2023 pm 05:00 PM

如何在PHP中處理中文字元的拼音排序問題?在開發中文網站或應用程式時,經常會面臨需要對中文字串按照拼音進行排序的需求。然而,由於中文字元的複雜性,直接使用常規的排序演算法會導致排序結果出現錯誤。因此,我們需要使用一種特殊的方法來處理中文字元的拼音排序問題。在PHP中,有一個常用的解決方案是使用拼音庫,例如「Overtrue/Pinyin」。這是一個基於PHP的拼音

golang中如何驗證輸入是否全部為中文字符 golang中如何驗證輸入是否全部為中文字符 Jun 24, 2023 am 09:16 AM

隨著時代的發展,我們越來越重視資料的校驗,特別是使用者輸入的校驗。對於語言類別的校驗,如何準確判定輸入是否全部為中文字元成為了一個重要問題。而在golang中,我們可以藉助unicode包和regexp包來實現這個需求。一、unicode包unicode包提供了一系列對於unicode的核心支援。我們可以使用這個包中的函數來準確地判斷一個字元是否為中文字元。

在C語言環境下如何對中文字元進行排序? 在C語言環境下如何對中文字元進行排序? Feb 18, 2024 pm 02:10 PM

如何在C語言程式設計軟體中實現中文字元排序功能?在現代社會,中文字元排序功能在許多軟體中都是不可或缺的功能之一。無論是在文字處理軟體、搜尋引擎或資料庫系統中,都需要對中文字元進行排序,以便更好地展示和處理中文文字資料。而在C語言程式設計中,如何實現中文字元排序功能呢?下面將簡要介紹一種方法。首先,為了在C語言中實作中文字元排序功能,我們需要使用到字串比較函數。然

如何在 PHP 中使用正規表示式來匹配中文字符 如何在 PHP 中使用正規表示式來匹配中文字符 Jun 22, 2023 am 09:16 AM

在PHP中,正規表示式是常用的字串比對工具,它可以用來判斷一個字串是否符合某種特定的格式,從而實現對輸入值的有效性驗證。而在處理中文字元時,由於中文字元與英文字元在編碼方式上有所不同,因此需要相應地調整正規表示式的符合規則。本文將介紹如何在PHP中使用正規表示式來匹配中文字元。一、了解中文字元編碼PHP常用的字元編碼有UTF-8和G

PHP如何取得中文字元的首字母? PHP如何取得中文字元的首字母? Sep 06, 2023 am 11:18 AM

PHP如何取得中文字元的首字母?在處理中文字元時,有時候我們需要取得中文字元的首字母。 PHP提供了一些內建函數和擴充包來實現這項功能。一種常用的方式是使用mb_substr()函數結合ord()函數。 mb_substr()函數用於取得字串的子字串,ord()函數用於取得字元的ASCII碼值。我們可以透過取得中文字元的第一個字元及其ASCII碼值來取得首字母。

如何在PHP中實現一個中文字元轉換為拼音首字母的搜尋功能? 如何在PHP中實現一個中文字元轉換為拼音首字母的搜尋功能? Sep 06, 2023 am 09:00 AM

如何在PHP中實現一個中文字元轉換為拼音首字母的搜尋功能?在許多網路應用程式中,我們經常需要實作搜尋功能,其中一個非常常見的需求是實作一個中文字元轉換為拼音首字母的搜尋功能。這樣使用者可以透過輸入中文字元的拼音首字母來搜尋相關的內容,提高搜尋的準確性和便利性。在PHP中實現中文字元轉換為拼音首字母的搜尋功能,可以使用第三方函式庫來實現。其中一個常用的函式庫是PHP的

解決PHP中文亂碼問題的有效方法 解決PHP中文亂碼問題的有效方法 Mar 07, 2024 pm 09:30 PM

解決PHP中文亂碼問題的有效方法在進行PHP開發過程中,經常會遇到中文亂碼的問題,這給我們的程式開發和資料處理帶來了不便。中文亂碼問題的出現​​通常是因為字元編碼不統一或出現了字元集轉換錯誤等情況。本文將介紹一些解決PHP中文亂碼問題的有效方法,並給出具體的程式碼範例。一、設定PHP檔案編碼格式首先,請確保在PHP檔案中明確指定編碼格式,通常可在檔案的開頭新增如下

PHP正規表示式實戰:匹配中文字符 PHP正規表示式實戰:匹配中文字符 Jun 22, 2023 pm 08:34 PM

在使用PHP開發專案的過程中,經常會遇到需要處理中文字元的需求。而正規表示式是一種強大的文字處理工具,可以幫助我們快速、準確地匹配和處理中文字元。在本篇文章中,我將介紹如何使用PHP正規表示式實作符合中文字元的相關技巧和實例。匹配中文字元首先,我們需要了解中文字元在電腦中是如何表示的。通常情況下,中文字元是使用Unicode編碼來表示的。在Unicod

See all articles