当前位置: 首页 > 后端技术 > PHP

[4]PHP实用自定义函数——校验

时间:2023-03-30 00:43:36 PHP

前言本文自定义函数主要讲一下常见的数据校验问题。有句话说:“很多事情不问对错,但请对得起自己的心。”,这句话在其他方面可能是可行的,但是对于我们的开发过程来说,是绝对做不到的这个,一定要有严格的校验规则,不然很容易出错。好了,废话不多说,直接说业务。我会写一些PHP开发中实用的自定义函数,方便使用的朋友快速开发和使用它们。我们都知道手机号码是否是合法格式。手机号有11位,都是1开头的,比如我的手机号是19988886666,最基本的就是直接验证1开头的11位数字,然后就是正则表达式的公式就是/^1\d{10}$/,在这种情况下,任何以1开头的11位数字都可以通过验证,这是最简单的。当然,这种粗活一定不能干,一定要小心,现在就安排.../***检查是否是合法格式的手机号*@paramstring$手机号*@returnbool*/functioncheck_mobile($mobile=''){//非数字直接为falseif(!is_numeric($mobile)){returnfalse;}$pattern='/^13[\d]{9}$|^14[5,7]{1}\d{8}$|^15[^4]{1}\d{8}$|^17[0,6,3,7,8]{1}\d{8}$|^18[\d]{9}$|^19[9]{1}\d{8}$/';$res=preg_match($pattern,$mobile)?真假;return$res;}检查是否为合法格式的邮箱地址,常用作标识用户信息,因为一个邮箱号只属于一个人,当需要手机用户的邮箱号时,需要验证用户输入的邮箱格式是否正确,否则很容易开玩笑或出错,比如你本来想要一个邮箱地址,但别人给了你一个QQ号,这完全是错误的.这不尴尬吗?因此,必须严格核实,不符合规定的一律不予受理。你必须是一个有原则的人。人们,你知道.../***检查它是否是一个有效的电子邮件地址*@paramstring$email电子邮件地址*@returnbool*/functioncheck_email($email=''){$pattern='/([\w\-]+\@[\w\-]+\.[\w\-]+)/';$res=preg_match($pattern,$email)?真假;return$res;}check电话号码格式是否合法在手机普及的时代,固话很少,基本都是公司或者单位使用,那么固话的格式是什么,一般分为[区号]-[号码],区号一般是3-4个数字,第一个数字是0,比如北京的区号是010,和深圳的区号区号是0755,所以号码一般是7-8位。比如深圳某房地产开发商的电话是88886666,那么实际电话号码是0755-88886666,好办/***检查是否是合法格式的电话号码*@paramstring$telephone电话号码*@returnbool*/functioncheck_telephone($telephone=''){$pattern='/^(0[0-9]{2,3})?[-]?\d{7,8}$/';$res=preg_match($pattern,$telephone)?真假;return$res;}查看是否是合法的邮政编码上刚刚提到了区号,我怎么忘记邮政编码了,例如:广东省深圳市福田区的邮政编码是518000,各国邮编都是6位,就这么简单,废话不多说,直接干活……/***检查是否是有效的邮编*@paramstring$code邮编*@returnbool*/functioncheck_post_code($code=''){$pattern='/\d{6}/';$res=preg_match($pattern,$code)?真假;return$res;}检查是否是合法的IP地址IP地址作为标识一台计算机的地址,比如局域网中分配给你的IP地址可能是192.168.1.20,每台机器或设备都会有一个IP地址。通过这个实际的IP地址,可以查到地址位置信息。很多公安案件都是这样来的,只要绑定你的IP地址,就能定位并实施抓捕工作;有点牵强,IP地址的格式是四段数,三个点相连。具体验证方法如下:/***验证是否为合法IP地址*@paramstring$ipIP地址*@returnbool*/functioncheck_ip($ip=''){$pattern='/^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/';$res=preg_match($pattern,$ip)?真假;return$res;}查看是否是合法的身份证号我们现在的身份证号都是18位的,之前的15位是的,刚才说了,开发过程中如果有这个需求,可以单独上网查资料,话不多说,直接代码.../***检查是否是合法身份证号码*@paramstring$id_card身份证号码*@returnbool*/functioncheck_id_card($id_card=''){$pattern='/^\d{6}((1[89])|(2\d))\d{2}((0\d)|(1[0-2]))((3[01])|([0-2]\d))\d{3}(\d|X)$/i';$res=preg_match($pattern,$id_card)?真假;return$res;}验证输入表单时经常需要输入指定范围长度的字符串名称,例如用户名、信息介绍等,文字说明一般限制输入多少个字符。可能是中文,可能是英文,也可能是中英文混合。我是一个善良的人。当然是为大家考虑过了,服务舒服才行/***检查指定范围长度的字符串名称*@paramstring$name名称*@paramint$min最小长度*@paramint$max最大长度*@paramstring$char字符串类型:ENEnglish,CNChinese,ALL所有字符*@returnbool*/functioncheck_name($name='',$min=2,$max=20,$char='ALL'){switch($char){case'EN':$pattern='/^[a-zA-Z]{'.$分钟。','。$最大。'}$/iu';休息;case'CN':$pattern='/^[_\x{4e00}-\x{9fa5}]{'。$分钟。','。$最大。'}$/iu';休息;默认值:$pattern='/^[_\w\d\x{4e00}-\x{9fa5}]{'。$分钟。','。$最大。'}$/iu';$res=preg_match($pattern,$name)?真假;return$res;}检查日期格式是否合法。所谓日期,通常是指年月日。比如我想获取当前时间的年月日,我可以通过date('Y-m-d',time())获取,如果这个日期是其他外部用户传入的值,你怎么知道他会不会老老实实的给你传递一个合法的年月日数据呢?也许他会通过你2020-99-80,看看这个日期,是不是很尴尬和可怕,所以如果有必要,你应该检查一下日期的合理性。/***检查是否为合法格式的日期*@paramstring$datedate*@paramstring$sep分隔符,默认为横线-*@returnbool*/functioncheck_date($date='',$sep='-'){$date_arr=explode($sep,$date);$res=假;//检查日期是否为合法数字if(count($date_arr)==3&&is_numeric($date_arr[0])&&is_numeric($date_arr[1])&&is_numeric($date_arr[2])){$res=checkdate($date_arr[1],$date_arr[2],$date_arr[0]);}返回$res;}验证时间格式是否合法。核对日期后,时间绝对不会丢失。时间是即时的:分:秒。/***检查是否为合法格式的时间*@paramstring$time时分秒*@paramstring$sep分隔符,默认为冒号:*@returnbool*/functioncheck_time($time='',$sep=":"){$time_arr=explode($sep,$time);$res=假;//检查时间的时分秒是否在合理范围内if(count($time_arr)==3&&is_numeric($time_arr[0])&&is_numeric($time_arr[1])&&is_numeric($time_arr[2])){if(($time_arr[0]>=0&&$time_arr[0]<=23)&&($time_arr[1]>=0&&$time_arr[1]<=59)&&($time_arr[2]>=0&&$time_arr[2]<=59)){$res=true;}}返回$res;}自定义函数源码为了方便,我把我整理的所有自定义函数都放在一个文件里,上传到同性交友网站GitHub,方便交流使用,也方便大家帮我排查问题.同学们可以自己去捡,我会不定时更新的。地址如下:函数源码地址:https://github.com/gxcuizy/Blog/blob/master/code/common.php最后,后面会慢慢更新其他实用的自定义函数,如果你有其他的乐趣和有用的,请分享出来,让大家一起学习交流。顺便说一下,如果有不对或不对的地方,请指出,我会尽力改进,谢谢。