之前有分享了用javascript在客户端进行姓名拆分的方法,后应项目需要,又用PHP实现了,贴出来 跟大家分享交流: <pre><?php /** * 拆分姓名(姓氏和名字) * @param string $fullname 全名(如:百里屠苏) * @return array 一维数组[0=?>'姓氏',1=>'名称'] * @author: 爱是西瓜<blog.mbku.net> * @return array */function splitName($fullname){ $hyphenated = array( '百里','北堂','北野','北宫','辟闾', '淳于','成公','陈生','褚师','城池', '端木','东方','东郭','东野','东门','第五','大狐','段干','段阳','第二','东宫', '公孙','公冶','公羊','公良','公西','公孟','公伯','公析','公肩','公坚','公乘','公皙','公户','公广','公仪','公祖','公玉','公仲','公上','公门','公山','高堂','高阳','郭公','谷梁','毌将','毌丘','单于','叱干','叱利','车非', '独孤','大野','独吉','达奚','东里', '哥舒','贯丘', '皇甫','黄龙','胡母','何阳','赫连','呼延','贺兰','贺若','黑齿','斛律','斛粟', '夹谷','九方','即墨','吉胡', '可频', '梁丘','闾丘','洛阳','陵尹','冷富','龙丘','令狐', '慕容','万俟','抹捻', '纳兰','南荣', '南宫','南郭','女娲','南伯','南容','南门','南野', '欧阳','欧侯', '濮阳','普周','仆固','仆散','蒲察', '青阳','漆雕','亓官','渠丘','屈突','屈卢','钳耳', '壤驷','汝嫣', '上官','少室','少叔','司徒','司马','司空','司寇','士孙','申屠','申徒','申鲜','申叔','夙沙','叔先','叔仲','叔孙','侍其','是云','索卢','厍狄', '澹台','太史','太叔','太公','屠岸','唐古','拓跋','同蹄','秃发', '闻人','巫马','微生','王孙','无庸','完颜', '夏侯','西门','信平','鲜于','轩辕','相里','新垣','徐离姓', '羊舌','羊角','延陵','於陵','伊祁','吾丘','乐正','宇文','尉迟','耶律', '诸葛','颛孙','仲孙','仲长','钟离','宗政','主父','中叔','左人','左丘','宰父','长儿','仉督','长孙','子车','子书','子桑' ); $vLength = mb_strlen($fullname, 'utf-8'); $lastname = ''; $firstname = '';//前为姓,后为名 if($vLength > 2){ $preTwoWords = mb_substr($fullname, 0, 2, 'utf-8');//取命名的前两个字,看是否在复姓库中 if(in_array($preTwoWords, $hyphenated)){ $lastname = $preTwoWords; $firstname = mb_substr($fullname, 2, 10, 'utf-8'); }else{ $lastname = mb_substr($fullname, 0, 1, 'utf-8'); $firstname = mb_substr($fullname, 1, 10, 'utf-8'); } }else if($vLength == 2){//全名只有两个字时,以前一个为姓,后一下为名 $lastname = mb_substr($fullname ,0, 1, 'utf-8'); $firstname = mb_substr($fullname, 1, 10, 'utf-8'); }else{ $lastname = $fullname; } return array($lastname, $firstname);}//输出调试var_dump(splitName('李强'));var_dump(splitName('百里屠苏'));var_dump(splitName('完颜洪烈'));</blog.mbku.net></pre> 注:字典数组数据来源于百度百科,只收录了有“根源”的复姓,少数名族英译的没有收录,双姓(父亲与母亲的姓组合新的姓)没有收录,来源不明确的姓也没收录。 拆分原理懂PHP应该都能理解,如果遇到了特殊的姓要处理加入字典即可。
php中实现将姓名拆分为姓氏和名字
2018-10-24
本文作者: 小罗同学
原文链接: php中实现将姓名拆分为姓氏和名字
版权声明: 本站所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
免责声明: 文中如涉及第三方资源,均来自互联网,仅供学习研究,禁止商业使用,如有侵权,联系我们24小时内删除!
- « 上一篇图片base64转file对象实现file文件上传
- 下一篇 »ApiCloud开发的注意事项
评论1
暂时没有评论