Home >Backend Development >PHP Tutorial > php汉字转拼音首字母有关问题

php汉字转拼音首字母有关问题

WBOY
WBOYOriginal
2016-06-13 12:32:42758browse

php汉字转拼音首字母问题。
程序运行后,发现字符串中有些文字转换不了。如果是单独输入这些字,直接去转换可以读取出拼音开头字母。
在字符串中就不行。程序代码如下:
 
 function getfirstchar($s0){     

     $fchar = ord($s0{0});  

     if($fchar >= ord("a") and $fchar 
     $s1 = iconv("UTF-8","gb2312", $s0);  

     $s2 = iconv("gb2312","UTF-8", $s1);  

     if($s2 == $s0){$s = $s1;}else{$s = $s0;}  

     $asc = ord($s{0}) * 256 + ord($s{1}) - 65536;  

     if($asc >= -20319 and $asc 
     if($asc >= -20283 and $asc 
     if($asc >= -19775 and $asc 
     if($asc >= -19218 and $asc   
     if($asc >= -18710 and $asc 
     if($asc >= -18526 and $asc 
     if($asc >= -18239 and $asc 
     if($asc >= -17922 and $asc 
     if($asc >= -17417 and $asc 
     if($asc >= -16474 and $asc 
     if($asc >= -16212 and $asc 
     if($asc >= -15640 and $asc 
     if($asc >= -15165 and $asc 
     if($asc >= -14922 and $asc 
     if($asc >= -14914 and $asc 
     if($asc >= -14630 and $asc 
     if($asc >= -14149 and $asc 
     if($asc >= -14090 and $asc 
     if($asc >= -13318 and $asc 
     if($asc >= -12838 and $asc    
     if($asc >= -12556 and $asc 
     if($asc >= -11847 and $asc 
     if($asc >= -11055 and $asc 
     return null;  

 }   

 function pinyin1($zh){  

     $ret = "";  

     $s1 = iconv("UTF-8","gb2312", $zh);  

     $s2 = iconv("gb2312","UTF-8", $s1);  

     if($s2 == $zh){$zh = $s1;}  

     for($i = 0; $i 
         $s1 = substr($zh,$i,1);  

         $p = ord($s1); 

         if($p > 160){  

             $s2 = substr($zh,$i++,2);  

             $ret .= getfirstchar($s2); 

         }else{  

             $ret .= $s1;  

         }  

     }  

     return $ret;  

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn