搜索
首页后端开发php教程PHP汉字转拼音的两种方法+PHP提取汉字(中文)方法_PHP教程
PHP汉字转拼音的两种方法+PHP提取汉字(中文)方法_PHP教程Jul 13, 2016 am 10:29 AM
web开发企业安全信息技术安全软件数据库移动开发系统安全网站安全网络安全网络技术软件开发

方法一:根据ASCII码转换,GB2312库对多音字也无能为力。

GB2312标准共收录6763个汉字,不在范围内的汉字是无法转换,如:中国前总理朱镕基的“镕”字。

GB2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。
01-09区为特殊符号。
16-55区为一级汉字,按拼音排序。(3755个)
56-87区为二级汉字,按部首/笔画排序。(3008个)
10-15区及88-94区则未有编码。
占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。所以实际共6763个汉字。其中一级汉字3755个,二级汉字3008个。而此类算法实际只能转换3755个汉字。


优点:没有使用大文字库,文件相对较小,没有使用正则表达式,性能相对较高。支持首字母转换。
缺点:没有在GB2312中收录的汉字无法转换,多音字无法识别。
(如果对拼音转换要求不高的朋友,建议使用这个。)

 

[php] view plaincopy在CODE上查看代码片派生到我的代码片
 
  •   
  • // 此类是根据ASCII码转换,GB2312库对多音字也无能为力。  
  • // GB2312标准共收录6763个汉字,不在范围内的汉字是无法转换,如:中国前总理朱镕基的“镕”字。  
  • class pinyin{  
  •     public static function utf8_to($s, $isfirst = false) {  
  •         return self::to(self::utf8_to_gb2312($s), $isfirst);  
  •     }  
  •   
  •     public static function utf8_to_gb2312($s) {  
  •         return iconv('UTF-8', 'GB2312//IGNORE', $s);  
  •     }  
  •   
  •     // 字符串必须为GB2312编码  
  •     public static function to($s, $isfirst = false) {  
  •         $res = '';  
  •         $len = strlen($s);  
  •         $pinyin_arr = self::get_pinyin_array();  
  •         for($i=0; $i
  •             $ascii = ord($s{$i});  
  •             if($ascii > 0x80) {  
  •                 $ascii2 = ord($s{++$i});  
  •                 $ascii = $ascii * 256 + $ascii2 - 65536;  
  •             }  
  •   
  •             if($ascii  0) {  
  •                 if(($ascii >= 48 && $ascii = 97 && $ascii 
  •                     $res .= $s{$i}; // 0-9 a-z  
  •                 }elseif($ascii >= 65 && $ascii 
  •                     $res .= strtolower($s{$i}); // A-Z  
  •                 }else{  
  •                     $res .= '_';  
  •                 }  
  •             }elseif($ascii  -10247) {  
  •                 $res .= '_';  
  •             }else{  
  •                 foreach($pinyin_arr as $py=>$asc) {  
  •                     if($asc 
  •                         $res .= $isfirst ? $py{0} : $py;  
  •                         break;  
  •                     }  
  •                 }  
  •             }  
  •         }  
  •         return $res;  
  •     }  
  •   
  •     public static function to_first($s) {  
  •         $ascii = ord($s{0});  
  •         if($ascii > 0xE0) {  
  •             $s = self::utf8_to_gb2312($s{0}.$s{1}.$s{2});  
  •         }elseif($ascii 
  •             if($ascii >= 65 && $ascii 
  •                 return strtolower($s{0});  
  •             }elseif($ascii >= 97 && $ascii 
  •                 return $s{0};  
  •             }else{  
  •                 return false;  
  •             }  
  •         }  
  •   
  •         if(strlen($s) 
  •             return false;  
  •         }  
  •   
  •         $asc = ord($s{0}) * 256 + ord($s{1}) - 65536;  
  •   
  •         if($asc>=-20319 && $asc
  •         if($asc>=-20283 && $asc
  •         if($asc>=-19775 && $asc
  •         if($asc>=-19218 && $asc
  •         if($asc>=-18710 && $asc
  •         if($asc>=-18526 && $asc
  •         if($asc>=-18239 && $asc
  •         if($asc>=-17922 && $asc
  •         if($asc>=-17417 && $asc
  •         if($asc>=-16474 && $asc
  •         if($asc>=-16212 && $asc
  •         if($asc>=-15640 && $asc
  •         if($asc>=-15165 && $asc
  •         if($asc>=-14922 && $asc
  •         if($asc>=-14914 && $asc
  •         if($asc>=-14630 && $asc
  •         if($asc>=-14149 && $asc
  •         if($asc>=-14090 && $asc
  •         if($asc>=-13318 && $asc
  •         if($asc>=-12838 && $asc
  •         if($asc>=-12556 && $asc
  •         if($asc>=-11847 && $asc
  •         if($asc>=-11055 && $asc
  •         return false;  
  •     }  
  •   
  •     public static function get_pinyin_array() {  
  •         static $py_arr;  
  •         if(isset($py_arr)) return $py_arr;  
  •   
  •         $k = 'a|ai|an|ang|ao|ba|bai|ban|bang|bao|bei|ben|beng|bi|bian|biao|bie|bin|bing|bo|bu|ca|cai|can|cang|cao|ce|ceng|cha|chai|chan|chang|chao|che|chen|cheng|chi|chong|chou|chu|chuai|chuan|chuang|chui|chun|chuo|ci|cong|cou|cu|cuan|cui|cun|cuo|da|dai|dan|dang|dao|de|deng|di|dian|diao|die|ding|diu|dong|dou|du|duan|dui|dun|duo|e|en|er|fa|fan|fang|fei|fen|feng|fo|fou|fu|ga|gai|gan|gang|gao|ge|gei|gen|geng|gong|gou|gu|gua|guai|guan|guang|gui|gun|guo|ha|hai|han|hang|hao|he|hei|hen|heng|hong|hou|hu|hua|huai|huan|huang|hui|hun|huo|ji|jia|jian|jiang|jiao|jie|jin|jing|jiong|jiu|ju|juan|jue|jun|ka|kai|kan|kang|kao|ke|ken|keng|kong|kou|ku|kua|kuai|kuan|kuang|kui|kun|kuo|la|lai|lan|lang|lao|le|lei|leng|li|lia|lian|liang|liao|lie|lin|ling|liu|long|lou|lu|lv|luan|lue|lun|luo|ma|mai|man|mang|mao|me|mei|men|meng|mi|mian|miao|mie|min|ming|miu|mo|mou|mu|na|nai|nan|nang|nao|ne|nei|nen|neng|ni|nian|niang|niao|nie|nin|ning|niu|nong|nu|nv|nuan|nue|nuo|o|ou|pa|pai|pan|pang|pao|pei|pen|peng|pi|pian|piao|pie|pin|ping|po|pu|qi|qia|qian|qiang|qiao|qie|qin|qing|qiong|qiu|qu|quan|que|qun|ran|rang|rao|re|ren|reng|ri|rong|rou|ru|ruan|rui|run|ruo|sa|sai|san|sang|sao|se|sen|seng|sha|shai|shan|shang|shao|she|shen|sheng|shi|shou|shu|shua|shuai|shuan|shuang|shui|shun|shuo|si|song|sou|su|suan|sui|sun|suo|ta|tai|tan|tang|tao|te|teng|ti|tian|tiao|tie|ting|tong|tou|tu|tuan|tui|tun|tuo|wa|wai|wan|wang|wei|wen|weng|wo|wu|xi|xia|xian|xiang|xiao|xie|xin|xing|xiong|xiu|xu|xuan|xue|xun|ya|yan|yang|yao|ye|yi|yin|ying|yo|yong|you|yu|yuan|yue|yun|za|zai|zan|zang|zao|ze|zei|zen|zeng|zha|zhai|zhan|zhang|zhao|zhe|zhen|zheng|zhi|zhong|zhou|zhu|zhua|zhuai|zhuan|zhuang|zhui|zhun|zhuo|zi|zong|zou|zu|zuan|zui|zun|zuo';  
  •         $v = '-20319|-20317|-20304|-20295|-20292|-20283|-20265|-20257|-20242|-20230|-20051|-20036|-20032|-20026|-20002|-19990|-19986|-19982|-19976|-19805|-19784|-19775|-19774|-19763|-19756|-19751|-19746|-19741|-19739|-19728|-19725|-19715|-19540|-19531|-19525|-19515|-19500|-19484|-19479|-19467|-19289|-19288|-19281|-19275|-19270|-19263|-19261|-19249|-19243|-19242|-19238|-19235|-19227|-19224|-19218|-19212|-19038|-19023|-19018|-19006|-19003|-18996|-18977|-18961|-18952|-18783|-18774|-18773|-18763|-18756|-18741|-18735|-18731|-18722|-18710|-18697|-18696|-18526|-18518|-18501|-18490|-18478|-18463|-18448|-18447|-18446|-18239|-18237|-18231|-18220|-18211|-18201|-18184|-18183|-18181|-18012|-17997|-17988|-17970|-17964|-17961|-17950|-17947|-17931|-17928|-17922|-17759|-17752|-17733|-17730|-17721|-17703|-17701|-17697|-17692|-17683|-17676|-17496|-17487|-17482|-17468|-17454|-17433|-17427|-17417|-17202|-17185|-16983|-16970|-16942|-16915|-16733|-16708|-16706|-16689|-16664|-16657|-16647|-16474|-16470|-16465|-16459|-16452|-16448|-16433|-16429|-16427|-16423|-16419|-16412|-16407|-16403|-16401|-16393|-16220|-16216|-16212|-16205|-16202|-16187|-16180|-16171|-16169|-16158|-16155|-15959|-15958|-15944|-15933|-15920|-15915|-15903|-15889|-15878|-15707|-15701|-15681|-15667|-15661|-15659|-15652|-15640|-15631|-15625|-15454|-15448|-15436|-15435|-15419|-15416|-15408|-15394|-15385|-15377|-15375|-15369|-15363|-15362|-15183|-15180|-15165|-15158|-15153|-15150|-15149|-15144|-15143|-15141|-15140|-15139|-15128|-15121|-15119|-15117|-15110|-15109|-14941|-14937|-14933|-14930|-14929|-14928|-14926|-14922|-14921|-14914|-14908|-14902|-14894|-14889|-14882|-14873|-14871|-14857|-14678|-14674|-14670|-14668|-14663|-14654|-14645|-14630|-14594|-14429|-14407|-14399|-14384|-14379|-14368|-14355|-14353|-14345|-14170|-14159|-14151|-14149|-14145|-14140|-14137|-14135|-14125|-14123|-14122|-14112|-14109|-14099|-14097|-14094|-14092|-14090|-14087|-14083|-13917|-13914|-13910|-13907|-13906|-13905|-13896|-13894|-13878|-13870|-13859|-13847|-13831|-13658|-13611|-13601|-13406|-13404|-13400|-13398|-13395|-13391|-13387|-13383|-13367|-13359|-13356|-13343|-13340|-13329|-13326|-13318|-13147|-13138|-13120|-13107|-13096|-13095|-13091|-13076|-13068|-13063|-13060|-12888|-12875|-12871|-12860|-12858|-12852|-12849|-12838|-12831|-12829|-12812|-12802|-12607|-12597|-12594|-12585|-12556|-12359|-12346|-12320|-12300|-12120|-12099|-12089|-12074|-12067|-12058|-12039|-11867|-11861|-11847|-11831|-11798|-11781|-11604|-11589|-11536|-11358|-11340|-11339|-11324|-11303|-11097|-11077|-11067|-11055|-11052|-11045|-11041|-11038|-11024|-11020|-11019|-11018|-11014|-10838|-10832|-10815|-10800|-10790|-10780|-10764|-10587|-10544|-10533|-10519|-10331|-10329|-10328|-10322|-10315|-10309|-10307|-10296|-10281|-10274|-10270|-10262|-10260|-10256|-10254';  
  •         $key = explode('|', $k);  
  •         $val = explode('|', $v);  
  •         $py_arr = array_combine($key, $val);  
  •         arsort($py_arr);  
  •   
  •         return $py_arr;  
  •     }  
  • }  
  •   
  • /* 
  • var_dump(0xE0); 
  • for($i=0; $i
  •     var_dump("$i :". chr($i)); 
  • */  
  •   
  • var_dump(pinyin::utf8_to('PHP汉字转拼音类'));  
  • var_dump(pinyin::utf8_to('GB2312标准共收录6763个汉字,不在范围内的汉字是无法转换,如:中国前总理朱镕基的“镕”字。'));  
  • var_dump(pinyin::utf8_to('`1234567890-=QWERTYUIOP[]ASDFGHJKL;ZXCVBNM,./abcdefghijklmnopqrstuvwxyz'));  
  •   
  •  
  • var_dump(pinyin::utf8_to('PHP汉字转拼音类', 1));  
  • var_dump(pinyin::utf8_to('GB2312标准共收录6763个汉字,不在范围内的汉字是无法转换,如:中国前总理朱镕基的“镕”字。', 1));  
  • var_dump(pinyin::utf8_to('`1234567890-=QWERTYUIOP[]ASDFGHJKL;ZXCVBNM,./abcdefghijklmnopqrstuvwxyz', 1));  
  •   
  • var_dump(pinyin::to_first('PHP汉字转拼音类'));  
  • var_dump(pinyin::to_first('GB2312标准共收录6763个汉字,不在范围内的汉字是无法转换,如:中国前总理朱镕基的“镕”字。'));  
  • var_dump(pinyin::to_first('▂`1234567890-=QWERTYUIOP[]ASDFGHJKL;ZXCVBNM,./abcdefghijklmnopqrstuvwxyz'));  
  •   
  • ?>  

  • 方法二:根据拼音组合数组检索

     

     

    [php] view plaincopy在CODE上查看代码片派生到我的代码片
     
  • class pinyin{  
  •     private $d=array(  
  •        array("a",-20319),  
  •        array("ai",-20317),  
  •        array("an",-20304),  
  •        array("ang",-20295),  
  •        array("ao",-20292),  
  •        array("ba",-20283),  
  •        array("bai",-20265),  
  •        array("ban",-20257),  
  •        array("bang",-20242),  
  •        array("bao",-20230),  
  •        array("bei",-20051),  
  •        array("ben",-20036),  
  •        array("beng",-20032),  
  •        array("bi",-20026),  
  •        array("bian",-20002),  
  •        array("biao",-19990),  
  •        array("bie",-19986),  
  •        array("bin",-19982),  
  •        array("bing",-19976),  
  •        array("bo",-19805),  
  •        array("bu",-19784),  
  • 声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    如何在 Windows 11 上创建移动热点如何在 Windows 11 上创建移动热点Apr 17, 2023 pm 06:22 PM

    当然,在Android智能手机和Windows11PC之间共享移动互联网可能很有用,尤其是在Wi-Fi不可用时。因此,当其他选项刚刚出现时,知道如何与Windows设备共享移动互联网会非常方便。就像没有Wi-Fi时iPhone可以连接到Mac一样,Android设备也允许用户通过USB和蓝牙将智能手机的互联网连接与任何Windows笔记本电脑连接。对于我们许多人来说,通过电缆连接手机和PC不是一种选择,而通过蓝牙连接互联网可能会很慢。因此,使用智能手机创建W

    实用Word技巧分享:2招轻松解决多图片排版!实用Word技巧分享:2招轻松解决多图片排版!Apr 01, 2023 am 10:57 AM

    多图片排版,是Word编辑文档时常见场景之一,几乎每个人都会碰到,对很多人来说仍然是一大难题。当图片数量一多,很多人都不知道图片该怎么摆放,如何快速高效地搞定一组图片? 因为没有掌握系统的套路技巧,每次制作都花费大量时间,做不出满意的效果。今天我就教大家2 招,轻松解决多图片排版!

    如何在网络安全中使用AI如何在网络安全中使用AIApr 14, 2023 pm 02:10 PM

    Cybersecurity Ventures的报告显示,2021年全球网络犯罪带来的损失为6万亿美元,并预计打击网络犯罪的全球支出在2025年将增至10.5万亿美元,是2015年的三倍之多(3万亿美元)。人工智能,几乎是唯一应对方案。另一家研究机构Statista认为,2020年网络安全领域的人工智能价值已超过100亿美元,并预计到2027年将达到450亿美元。IBM则认为,缺乏人工智能安全的企业,在抵御网络攻击方面的成本是部署了AI自动化防御系统的企业的三倍。来自Meticulous的研究数据

    Microsoft Edge 102.0.1245.41 带来安全修复和 PDF 打印错误解决方案Microsoft Edge 102.0.1245.41 带来安全修复和 PDF 打印错误解决方案May 06, 2023 pm 07:37 PM

    微软在周末为其Edge浏览器发布了两个小更新。该公司在周五和今天发布了另一个安全更新。虽然周五的更新修复了影响Edge浏览器的安全问题,但今天的更新解决了影响所有基于Chromium的网络浏览器的安全问题。此外,该更新似乎解决了通过Edge浏览器访问PDF文件时无法打印的问题。稳定版本通道的Edge102.0.1245.41被标记为修复了多个漏洞的维护更新。Microsoft尚未更新发行说明。不过,该公司此前已告知Chromium和Edge浏览器存在以下漏洞:

    从“微软安全的下一步”数字活动中可以期待什么从“微软安全的下一步”数字活动中可以期待什么Apr 19, 2023 am 10:46 AM

    Microsoft数字活动的下一步安全计划将于太平洋时间(UTC-8)时间2月24日上午9:00至上午10:30举行。随着无处不在的威胁不断增长,为他们的公司寻找有效安全解决方案的各种组织希望在这次活动中找到一些有价值的技巧和知识。Microsoft的安全下一步计划将强调全面的安全方法对业务增长的重要性。它将欢迎不同的安全专家讨论最新的创新和技术,以减少最新的威胁风险。一些演讲者包括VasuJakkal(微软公司安全、合规和身份副总裁)和JeffPollard(F

    人工智能聊天机器人在网络安全领域的发展趋势如何?人工智能聊天机器人在网络安全领域的发展趋势如何?Apr 22, 2023 pm 11:13 PM

    OpenAI公司推出的聊天机器人ChatGPT有很多很好的用途,但就像任何新技术一样,有些人会利用ChatGPT用于罪恶的目的。从编写电子邮件等相对简单的任务,到撰写论文或编译代码等更复杂的工作,OpenAI公司的人工智能驱动的自然语言处理工具ChatGPT自从推出以来就引起了人们的极大兴趣。当然,ChatGPT并不完美——众所周知,当它误解了从中学习的信息时就会犯错,但许多人将它和其他人工智能工具视为互联网的未来。OpenAI公司在ChatGPT的服务条款中加入了禁止生成恶意软件的条目,其中包

    您应该了解的 5 个重要的 iPhone 安全功能您应该了解的 5 个重要的 iPhone 安全功能Apr 18, 2023 am 09:58 AM

    虽然iOS16拥有经过重新设计的时髦锁屏,但在其下方,最新的操作系统拥有一系列全新的安全和隐私功能,旨在帮助保护您和您的数据。这里有五项新功能可以更好地保护您的iPhone免受黑客攻击,让您更加安心。快速安全响应iOS以及macOS和iPadOS现在允许自动“快速安全响应”。这使Apple能够快速修补软件(即零日漏洞或其他严重漏洞)并将其发送到数百万台设备,而无需重新启动或任何最终用户交互。这在“设置”>“通用”>“软件更新”>“自动更新”下可用有趣的是,即使关闭了这个

    Zerodium 宣布为 Microsoft Outlook 零点击 RCE 安全漏洞支付 400,000 美元Zerodium 宣布为 Microsoft Outlook 零点击 RCE 安全漏洞支付 400,000 美元Apr 29, 2023 pm 09:28 PM

    <ul><li><strong>点击进入:</strong>ChatGPT工具插件导航大全</li></ul><figureclass="imageimage--expandable"><imgsrc="/uploads/2023041

    See all articles

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    AI Hentai Generator

    AI Hentai Generator

    免费生成ai无尽的。

    热门文章

    R.E.P.O.能量晶体解释及其做什么(黄色晶体)
    3 周前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳图形设置
    3 周前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.如果您听不到任何人,如何修复音频
    3 周前By尊渡假赌尊渡假赌尊渡假赌

    热工具

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    功能强大的PHP集成开发环境

    EditPlus 中文破解版

    EditPlus 中文破解版

    体积小,语法高亮,不支持代码提示功能

    螳螂BT

    螳螂BT

    Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

    SublimeText3 Linux新版

    SublimeText3 Linux新版

    SublimeText3 Linux最新版

    mPDF

    mPDF

    mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),