百家姓姓名判断,封装方法:
function checkSurname($user_name){
$array = array(
'赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '楮','卫',
'蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许', '何', '吕', '施', '张',
'孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻',
'柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭', '郎',
'鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳',
'酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤',
'滕', '殷', '罗', '毕', '郝', '邬', '安', '常', '乐', '于', '时', '傅',
'皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄',
'和', '穆', '萧', '尹', '姚', '邵', '湛', '汪', '祁', '毛', '禹', '狄',
'米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞',
'熊', '纪', '舒', '屈', '项', '祝', '董', '梁', '杜', '阮', '蓝', '闽',
'席', '季', '麻', '强', '贾', '路', '娄', '危', '江', '童', '颜', '郭',
'梅', '盛', '林', '刁', '锺', '徐', '丘', '骆', '高', '夏', '蔡', '田',
'樊', '胡', '凌', '霍', '虞', '万', '支', '柯', '昝', '管', '卢', '莫',
'经', '房', '裘', '缪', '干', '解', '应', '宗', '丁', '宣', '贲', '邓',
'郁', '单', '杭', '洪', '包', '诸', '左', '石', '崔', '吉', '钮', '龚',
'程', '嵇', '邢', '滑', '裴', '陆', '荣', '翁', '荀', '羊', '於', '惠',
'甄', '麹', '家', '封', '芮', '羿', '储', '靳', '汲', '邴', '糜', '松',
'井', '段', '富', '巫', '乌', '焦', '巴', '弓', '牧', '隗', '山', '谷',
'车', '侯', '宓', '蓬', '全', '郗', '班', '仰', '秋', '仲', '伊', '宫',
'宁', '仇', '栾', '暴', '甘', '斜', '厉', '戎', '祖', '武', '符', '刘',
'景', '詹', '束', '龙', '叶', '幸', '司', '韶', '郜', '黎', '蓟', '薄',
'印', '宿', '白', '怀', '蒲', '邰', '从', '鄂', '索', '咸', '籍', '赖',
'卓', '蔺', '屠', '蒙', '池', '乔', '阴', '郁', '胥', '能', '苍', '双',
'闻', '莘', '党', '翟', '谭', '贡', '劳', '逄', '姬', '申', '扶', '堵',
'冉', '宰', '郦', '雍', '郤', '璩', '桑', '桂', '濮', '牛', '寿', '通',
'边', '扈', '燕', '冀', '郏', '浦', '尚', '农', '温', '别', '庄', '晏',
'柴', '瞿', '阎', '充', '慕', '连', '茹', '习', '宦', '艾', '鱼', '容',
'向', '古', '易', '慎', '戈', '廖', '庾', '终', '暨', '居', '衡', '步',
'都', '耿', '满', '弘', '匡', '国', '文', '寇', '广', '禄', '阙', '东',
'欧', '殳', '沃', '利', '蔚', '越', '夔', '隆', '师', '巩', '厍', '聂',
'晁', '勾', '敖', '融', '冷', '訾', '辛', '阚', '那', '简', '饶', '空',
'曾', '毋', '沙', '乜', '养', '鞠', '须', '丰', '巢', '关', '蒯', '相',
'查', '后', '荆', '红', '游', '竺', '权', '逑', '盖', '益', '桓', '公',
'仉', '督', '晋', '楚', '阎', '法', '汝', '鄢', '涂', '钦', '岳', '帅',
'缑', '亢', '况', '后', '有', '琴', '归', '海', '墨', '哈', '谯', '笪',
'年', '爱', '阳', '佟', '商', '牟', '佘', '佴', '伯', '赏'
);
$double_array = array(
"万俟", "司马", "上官", "欧阳", "夏侯", "诸葛", "闻人", "东方",
"赫连", "皇甫", "尉迟", "公羊","澹台", "公冶", "宗政", "濮阳",
"淳于", "单于", "太叔", "申屠", "公孙", "仲孙", "轩辕", "令狐",
"锺离", "宇文", "长孙", "慕容", "鲜于", "闾丘", "司徒", "司空",
"丌官", "司寇", "子车", "微生","颛孙", "端木", "巫马", "公西",
"漆雕", "乐正", "壤驷", "公良", "拓拔", "夹谷", "宰父", "谷梁",
"段干", "百里", "东郭", "南门", "呼延", "羊舌", "梁丘", "左丘",
"东门", "西门", "南宫"
);
$first_name = utf8sub($user_name, 1);
$double_name = utf8sub($user_name, 2);
if(in_array($first_name,$array) || in_array($double_name, $double_array))
{
return TRUE;
}else{
return FALSE;
}
}
/**
* UTF8字符串截取函数
* @param type $str
* @param type $len
* @return string
*/
function utf8sub($str,$len,$offset=0)
{
if($len<0){
return '';
}
$res = '';
// $offset = 0;
$chars = 0;
$count = 0;
$length = strlen($str);//待截取字符串的字节数
while($chars<$len && $offset<$length){
//先截取客串的一个字节,substr按字节进行截取
$high = decbin(ord(substr($str,$offset,1)));
//重要突破,已经能够判断高位字节
if(strlen($high)<8){//英文字符ascii编码长度为7,通过长度小于8来判断
$count = 1;
// echo 'hello,I am in','<br>';
}elseif (substr($high,0,3) == '110') {
$count = 2; //取两个字节的长度
}elseif (substr($high,0,4) == '1110') {
$count = 3; //取三个字节的长度
}elseif (substr($high,0,5) == '11110') {
$count = 4;
}elseif (substr($high,0,6) == '111110') {
$count = 5;
}elseif(substr($high,0,7)=='1111110'){
$count = 6;
}
$res .= substr($str,$offset,$count);
$chars +=1;
$offset += $count;
}
return $res;
}
评论 (0)