输入姓名将姓和名分离
<?php
/**
* 把全名拆分为姓氏和名字
* @param string $fullname 全名
* @return array 一维数组,元素一是姓,元素二为名
*/
function xingshi($fullname){
$complex= array('欧阳','太史','端木','上官','司马','东方','独孤','南宫','万俟','闻人','夏侯','诸葛','尉迟','公羊','赫连','澹台','皇甫',
'宗政','濮阳','公冶','太叔','申屠','公孙','慕容','仲孙','钟离','长孙','宇文','城池','司徒','鲜于','司空','汝嫣','闾丘','子车','亓官',
'司寇','巫马','公西','颛孙','壤驷','公良','漆雕','乐正','宰父','谷梁','拓跋','夹谷','轩辕','令狐','段干','百里','呼延','东郭','南门',
'羊舌','微生','公户','公玉','公仪','梁丘','公仲','公上','公门','公山','公坚','左丘','公伯','西门','公祖','第五','公乘','贯丘','公皙',
'南荣','东里','东宫','仲长','子书','子桑','即墨','达奚','褚师');
$vLength = mb_strlen($fullname, 'gbk');
$lastname = '';
$firstname = '';
if($vLength > 2){
$preTwoWords = mb_substr($fullname, 0, 2, 'gbk');
if(in_array($preTwoWords, $complex)){
$lastname = $preTwoWords;
$firstname = mb_substr($fullname, 2, 10, 'gbk');
}else{
$lastname = mb_substr($fullname, 0, 1, 'gbk');
$firstname = mb_substr($fullname, 1, 10, 'gbk');
}
}else if($vLength == 2){
$lastname = mb_substr($fullname ,0, 1, 'gbk');
$firstname = mb_substr($fullname, 1, 10, 'gbk');
}else{
$lastname = $fullname;
}
return array($lastname, $firstname);
}
$b="诸葛孔明";
$a=xingshi($b);
echo "姓氏:$a[0]";
echo "<br>";
echo "名字:$a[1]";
echo "<pre>";
print_r($a);exit;
?>