人品查询测试函数正则验证百家姓
程序员文章站
2023-12-24 10:49:27
...
[代码]PHP
//获得人品值 function getMoralInfo($name) { $name = str_replace("+", "", $name); $f = mb_substr($name,0,1,'utf-8'); $s = mb_substr($name,1,1,'utf-8'); $w = mb_substr($name,2,1,'utf-8'); $x = mb_substr($name,3,1,'utf-8'); $n=(getUnicodeFromUTF8($f) + getUnicodeFromUTF8($s) + getUnicodeFromUTF8($w) + getUnicodeFromUTF8($x)) % 100; $addd=''; if(empty($name)) { $addd="大哥不要玩我啊,名字都没有你想算什么!"; } else if ($n <= 0) { $addd ="你一定不是人吧?怎么一点人品都没有?!"; } else if($n > 0 && $n <= 5) { $addd ="算了,跟你没什么人品好谈的..."; } else if($n > 5 && $n <= 10) { $addd ="是我不好...不应该跟你谈人品问题的..."; } else if($n > 10 && $n <= 15) { $addd ="杀过人没有?放过火没有?你应该无恶不做吧?"; } else if($n > 15 && $n <= 20) { $addd ="你貌似应该三岁就偷看隔壁大妈洗澡的吧..."; } else if($n > 20 && $n <= 25) { $addd ="你的人品之低下实在让人惊讶啊..."; } else if($n > 25 && $n <= 30) { $addd ="你的人品太差了。你应该有干坏事的嗜好吧?"; } else if($n > 30 && $n <= 35) { $addd ="你的人品真差!肯定经常做偷鸡摸狗的事..."; } else if($n > 35 && $n <= 40) { $addd ="你拥有如此差的人品请经常祈求佛祖保佑你吧..."; } else if($n > 40 && $n <= 45) { $addd ="老实交待..那些论坛上面经常出现的偷拍照是不是你的杰作?"; } else if($n > 45 && $n <= 50) { $addd ="你随地大小便之类的事没少干吧?"; } else if($n > 50 && $n <= 55) { $addd ="你的人品太差了..稍不小心就会去干坏事了吧?"; } else if($n > 55 && $n <= 60) { $addd ="你的人品很差了..要时刻克制住做坏事的冲动哦.."; } else if($n > 60 && $n <= 65) { $addd ="你的人品比较差了..要好好的约束自己啊.."; } else if($n > 65 && $n <= 70) { $addd ="你的人品勉勉强强..要自己好自为之.."; } else if($n > 70 && $n <= 75) { $addd ="有你这样的人品算是不错了.."; } else if($n > 75 && $n <= 80) { $addd ="你有较好的人品..继续保持.."; } else if($n > 80 && $n <= 85) { $addd ="你的人品不错..应该一表人才吧?"; } else if($n > 85 && $n <= 90) { $addd ="你的人品真好..做好事应该是你的爱好吧.."; } else if($n > 90 && $n <= 95) { $addd ="你的人品太好了..你就是当代活雷锋啊..."; } else if($n > 95 && $n <= 99) { $addd ="你是世人的榜样!"; } else if($n > 100 && $n < 105) { $addd ="天啦!你不是人!你是神!!!"; }else if($n > 105 && $n < 999) { $addd="你的人品已经过 100 人品计算器已经甘愿认输,3秒后人品计算器将自杀啊"; } else if($n > 999) { $addd ="你的人品竟然负溢出了...我对你无语.."; } return $name."的人品分数为:".$n."<br>".$addd; } //验证中文 function checkGBK($str,$lenStart,$lenEnd){//检查是否符合规定长度的gbk汉字 $str=iconv('utf-8', 'gbk', $str); $strLen=strlen($str)/2; if($strLen>$lenEnd || $strLen<$lenStart) return false; for($n=0;$n<strlen($str);$n+=2){ $fs=ord($str[$n]); $ss=ord($str[$n+1]); if(!(($fs>175&&$fs<248&&$ss>160&&$ss<255) || ($fs>128&&$fs<161&&$ss>63&&$ss<255) || ($fs>169&&$fs<255&&$ss>63&&$ss<161))) return false; } return true; } //验证百家姓 function checkbjx($xm){ if(preg_match("/^(赵|钱|孙|李|周|吴|郑|王|冯|陈|楮|卫|蒋|沈|韩|杨|朱|秦|尤|许|何|吕|施|张|孔|曹|严|华|金|魏|陶|姜|戚|谢|邹|喻|柏|水|窦|章|云|苏|潘|葛|奚|范|彭|郎|鲁|韦|昌|马|苗|凤|花|方|俞|任|袁|柳|酆|鲍|史|唐|费|廉|岑|薛|雷|贺|倪|汤|滕|殷|罗|毕|郝|邬|安|常|乐|于|时|傅|皮|卞|齐|康|伍|余|元|卜|顾|孟|平|黄|和|穆|萧|尹|姚|邵|湛|汪|祁|毛|禹|狄|米|贝|明|臧|计|伏|成|戴|谈|宋|茅|庞|熊|纪|舒|屈|项|祝|董|梁|杜|阮|蓝|闽|席|季|麻|强|贾|路|娄|危|江|童|颜|郭|梅|盛|林|刁|锺|徐|丘|骆|高|夏|蔡|田|樊|胡|凌|霍|虞|万|支|柯|昝|管|卢|莫|经|房|裘|缪|干|解|应|宗|丁|宣|贲|邓|郁|单|杭|洪|包|诸|左|石|崔|吉|钮|龚|程|嵇|邢|滑|裴|陆|荣|翁|荀|羊|於|惠|甄|麹|家|封|芮|羿|储|靳|汲|邴|糜|松|井|段|富|巫|乌|焦|巴|弓|牧|隗|山|谷|车|侯|宓|蓬|全|郗|班|仰|秋|仲|伊|宫|宁|仇|栾|暴|甘|斜|厉|戎|祖|武|符|刘|景|詹|束|龙|叶|幸|司|韶|郜|黎|蓟|薄|印|宿|白|怀|蒲|邰|从|鄂|索|咸|籍|赖|卓|蔺|屠|蒙|池|乔|阴|郁|胥|能|苍|双|闻|莘|党|翟|谭|贡|劳|逄|姬|申|扶|堵|冉|宰|郦|雍|郤|璩|桑|桂|濮|牛|寿|通|边|扈|燕|冀|郏|浦|尚|农|温|别|庄|晏|柴|瞿|阎|充|慕|连|茹|习|宦|艾|鱼|容|向|古|易|慎|戈|廖|庾|终|暨|居|衡|步|都|耿|满|弘|匡|国|文|寇|广|禄|阙|东|欧|殳|沃|利|蔚|越|夔|隆|师|巩|厍|聂|晁|勾|敖|融|冷|訾|辛|阚|那|简|饶|空|曾|毋|沙|乜|养|鞠|须|丰|巢|关|蒯|相|查|后|荆|红|游|竺|权|逑|盖|益|桓|公|万俟|司马|上官|欧阳|夏侯|诸葛|闻人|东方|赫连|皇甫|尉迟|公羊|澹台|公冶|宗政|濮阳|淳于|单于|太叔|申屠|公孙|仲孙|轩辕|令狐|锺离|宇文|长孙|慕容|鲜于|闾丘|司徒|司空|丌官|司寇|仉|督|子车|颛孙|端木|巫马|公西|漆雕|乐正|壤驷|公良|拓拔|夹谷|宰父|谷梁|晋|楚|阎|法|汝|鄢|涂|钦|段干|百里|东郭|南门|呼延|归|海|羊舌|微生|岳|帅|缑|亢|况|后|有|琴|梁丘|左丘|东门|西门|商|牟|佘|佴|伯|赏|南宫|墨|哈|谯|笪|年|爱|阳|佟|第五|言|福)/",$xm)) { return true; }else{ return false; }
[代码]getUnicodeFromUTF8函数
function getUnicodeFromUTF8($word) { //获取其字符的内部数组表示,所以本文件应用utf-8编码! if (is_array( $word)) $arr = $word; else $arr = str_split($word); //此时,$arr应类似array(228, 189, 160) //定义一个空字符串存储 $bin_str = ''; //转成数字再转成二进制字符串,最后联合起来。 foreach ($arr as $value) $bin_str .= decbin(ord($value)); //此时,$bin_str应类似111001001011110110100000,如果是汉字"你" //正则截取 $bin_str = preg_replace('/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/','$1$2$3', $bin_str); //此时, $bin_str应类似0100111101100000,如果是汉字"你" return bindec($bin_str); //返回类似20320, 汉字"你" //return dechex(bindec($bin_str)); //如想返回十六进制4f60,用这句 }
推荐阅读