php判断是否连续出现数字,php通过gbk编码判断 含有连续数字 可用于判断QQ号,手机号等。...
有可能有些输入,不希望让用户的评论或者私信中含有类似于QQ号,手机号的文本,比如交友网站。还有些恶意SEO通过,构造恶意检索词,检索词中包含QQ,手机号等,让百度爬取到,增加展现。也需要将这些检索词屏蔽掉。numberSafe函数通过GBK码表,判断输入是否包含连续的5个数字,中文数字,数字谐音,或者特殊中文字符(①②Ⅰ Ⅱ等)如果包含返回false,不包含返回true。
function numberSafe($str) {
//阿拉伯数字
$assicNum = array(48,57);
//中文字符
$chineseNum = array(
//特殊数字
'162'=>array(161,255),
//一
'210'=>array(187,239),
//二
'182'=>array(248,256),
'183'=>array(161,161),
//三
'200'=>array(253,256),
'201'=>array(161,162),
//四
'203'=>array(185,200),
//五
'206'=>array(215,243),
//六 零
'193'=>array(224,249),
//七
'198'=>array(218,253),
//八
'176'=>array(197,214),
//九
'190'=>array(190,206),
//十
'202'=>array(166,212)
);
$str = iconv('UTF-8', 'GBK', $str);
$dangoursMax = $dangours = 0;
for ( $i = 0; $i < strlen($str) && $dangouesMax < 5; ) {
$assic = ord($str[$i]);
if ( $assic < 128 ) {
if ( $assic > $assicNum[0] - 1 && $assic < $assicNum[1] + 1 ) {
$dangours++;
} else {
$dangoursMax = max($dangours, $dangoursMax);
$dangours = 0;
}
$i += 1;
} else {
$assicNext = ord($str[$i+1]);
if ( array_key_exists($assic, $chineseNum) && $assicNext > $chineseNum[$assic][0] - 1
&& $assicNext < $chineseNum[$assic][1] + 1 ) {
$dangours++;
} else {
$dangoursMax = max($dangours, $dangoursMax);
$dangours = 0;
}
$i += 2;
}
}
$dangoursMax = max($dangours, $dangoursMax);
return $dangoursMax < 5 ? true : false;
}
测试
var_dump(numberSafe('12345')); //false
var_dump(numberSafe('一二三四五')); //false
var_dump(numberSafe('一贰叁肆五')); //false
var_dump(numberSafe('衣领511')); //false
var_dump(numberSafe('⒈⒉⒊⒋⒌')); //false
php判断是否连续出现数字,php通过gbk编码判断 含有连续数字 可用于判断QQ号,手机号等。...相关推荐
- 扑克牌中的顺子。从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王可以看成任意数字。
面试题36:扑克牌中的顺子 1.题目描述 题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的.2~10为数字本身,A为1,J为11,Q为12,K为13,而大.小王可以看成任意数字 ...
- php 判断5张牌是不是顺子,从扑克牌中随机抽取5张牌,判断是不是一个顺子,即这5张牌是不是连续(面试题)...
从扑克牌中随机抽取5张牌,判断是不是一个顺子,即这5张牌是不是连续的2-10位数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字 统计数组中出现的次数,判断等于0,大于1大于2大 ...
- 数字字母下划线C语言,【判断题】C语言中的标识符只能由字母、数字和下划线三种字符组成,而且第一个字符只能是字母和下划线。...
[判断题]C语言中的标识符只能由字母.数字和下划线三种字符组成,而且第一个字符只能是字母和下划线. 更多相关问题 计算机病毒按其寄生方式划分通常可分为().A.系统引导型病毒B.文件型病毒C. 在委托 ...
- js正则表达式,判断字符串是否以数字组结尾,并取出结尾的数字
js正则表达式,判断字符串是否以数字组结尾,并取出结尾的数字 <!DOCTYPE html> <html><head><meta charset=" ...
- [java]判断一个数字中是否含有某个数字
[java]判断一个数字中是否含有某个数字 例如判断一个数字中是否含有2 代码: public class panduan {public static boolean test(int n) {wh ...
- 编写一个Java应用程序。用户从键盘输入一个1~99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223
编写一个Java应用程序.用户从键盘输入一个1-99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数.回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121.3223 ...
- c语言中用于判断ch是否是字符的表达式,最新C语言复习题集资料
精品文档 C语言复习题集 一. 判断题 1-1.C语言程序是从源文件的第一条语句开始执行的. 正确答案:F 1-2.C语言中的变量名不区分大小写. 正确答案:F 1-3.若变量定义为double x; ...
- 数字图像处理与机器视觉光盘资料_机器视觉——数字图像处理知识点总结
数字图像处理知识点总结 第一章 导论 1. 图像:对客观对象的一种相似性的生动性的描述或写真. 2. 图像分类:按可见性(可见图像.不可见图像),按波段数(单波段.多波段.超波段),按空间坐标和亮度的 ...
- 数字经济与信息资本主义——美国商务部《数字经济2000》中译本序
引言:当纳斯达克综合指数从超过5000点的高峰向下回调向1500点的超低谷时,当所有的风险投资人"谈网色变"的时候,人们对数字经济的评价一直在进行的过程之中.由于过去两年多的时间中 ...
- AMNO.6 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123 输入 一个不大于5位的数字
题目描述 给出一个不多于5位的整数,要求 1.求出它是几位数 2.分别输出每一位数字 3.按逆序输出各位数字,例如原数为321,应输出123 输入 一个不大于5位的数字 输出 三行 第一行 位数 第二 ...
最新文章
- AJAX推送与拉取方式的比较
- 漆桂林 | 人工智能的浪潮中,知识图谱何去何从?
- servletcheckbox选中和未选中判断_【微课堂】2020【1期】如何判断牛市启动,春季布局思路! 2020.1.4...
- Spring Boot 学习笔记,这个太全了!
- 计算机半小时后关机代码,电脑自动关机代码
- 怎么用计算机计算t分布的概率,MATLAB如何使用tpdf函数计算T分布的概率密度
- html画布抗锯齿,javascript – Node-Canvas图像抗锯齿似乎不起作用
- 毕业论文页码及目录设置方法
- 借鉴FCoin商业模式,写了一份白皮书去参赛
- 重磅!《2020年中国 DevOps 现状调查》全面启动!
- 无源NFC方案 无源NFC对外供电 NFC感应电源 无源NFC通讯 NFC无线充电方案 NFC无线取电方案 显示NFC标签
- Linux脚本--实现自动根据名称查询进程号并杀死进程
- creo2.0安装方法
- 【Log】(二)Java 中的日志框架 JCL、SLF
- STATCOM主电路拓扑结构分类
- “杭州最惨创业者”事件初步法律分析
- 公理化体系降维打击1之补充(脱敏版本)再加俺老孙的故事(开头)
- 房产管理系统设计html,HTML5 3D 在智慧物业/地产管理系统中的应用
- opencv球体追踪
- 声纹识别技术发展现状及未来五大发展趋势