之前有分享了用javascript在客户端进行姓名拆分的方法,后应项目需要,又用PHP实现了,贴出来 跟大家分享交流:

/**
* 把全名拆分为姓氏和名字
* @param string $fullname 全名
* @return array 一维数组,元素一是姓,元素二为名
* @author: 风柏杨<waitatlee@163.com>
*/
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);
}

  

最新文章

  1. SQL Server复制需要有实际的服务器名称才能连接到服务器
  2. viewController的自动扩展属性导致TableViewGroupStyle时向上填充
  3. 微博一键分享主要通过对指定 URL 添加各种参数来实现;
  4. 命令ls
  5. ubuntu 常用软件配置
  6. JQuery图片滑动插件
  7. 使用Sublime Text搭建python调试环境
  8. 使用HtmlAgilityPack批量抓取网页数据
  9. 脸识别API微软牛津项目
  10. boost xpressive 例子
  11. uitableview 关于键盘挡住输入框解决方法
  12. Linux文件目录权限对比
  13. BMP文件解析
  14. Forward团队-爬虫豆瓣top250项目-开发文档
  15. C# Socket的粘包处理
  16. pip使用豆瓣的镜像源
  17. [转]Angular项目目录结构详解
  18. idea error:Command line is too long
  19. @Component单例与并发(未解决)
  20. SQL Server 2008设置sa用户并开启远程连接

热门文章

  1. Oracle学习笔记—数据字典和常用命令(转载)
  2. spring cloud 使用feign 遇到问题
  3. 内网IP&amp;外网IP/NAT
  4. C#如何打印RichTextBox控件的内容
  5. UI控件之UITableView的基本属性
  6. 转:CWebBrowser2去除边框、滚动条、右键菜单
  7. 财经世界(2)A股B股和H股
  8. Django框架之HTTP本质
  9. K8s + Flannel 网络架构图
  10. 在Java项目中部署使用Memcached[转]