PHP验证
class yanzhenglei{
/**
* 检查日期格式
* @param string $str 日期格式2015-01-01
* @return bool
*/
public static function is_date($str){
if(!self::is_empty($str)) return false;
$arg = explode("-",$str);
return checkdate ($arg[1] ,(int)$arg[2], $arg[0]);
}
/**
* 检查IP
* @param string $str IP地址0.0.0.0
* @return bool
*/
public static function is_ip($str){
if(!self::is_empty($str)) return false;
return ip2long($str) ? TRUE : FALSE;
}
/**
* 检查手机
* @param string $str 手机号码
* @return bool
*/
public static function is_mobile($str){
if(!self::is_empty($str)) return false;
$exp = "/^13[0-9]{1}[0-9]{8}$|15[012356789]{1}[0-9]{8}$|177[0-9]{8}$|18[012356789]{1}[0-9]{8}$|14[57]{1}[0-9]$/";
return preg_match($exp,$str) ? TRUE : FALSE;
}
/**
* 检查用户名
* @param string $str 用户名
* @return bool
*/
public static function is_username($str){
if(!self::is_empty($str)) return false;
return preg_match("/^[A-Z0-9a-z@\.-_]{6,20}$/",$str) ? TRUE : FALSE;
}
/**
* 检查Email
* @param string $str Email地址
* @return bool
*/
public static function is_email($str){
if(!self::is_empty($str)) return false;
return preg_match("/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i",$str) ? true : false;
}
/**
* 检查密码字符
* @param string $str 密码字符
* @return bool
*/
public static function is_password($str , $min = 6, $max = 20){
if(!self::is_empty($str)) return false;
return preg_match("/^[\\~!@#$%^&*()-_=+|{},.?\/:;\'\"\d\w]{".$min.",".$max."}$/",$str) ? TRUE : FALSE;
}
/**
* 检查简单密码
* @param string $str 密码字符
* @return bool
*/
public static function is_complex_password($str , $min = 6, $max = 20){
if(!self::is_password($str,$min,$max)) return false;
if(strpos("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",$str)) return false;
if(preg_replace("/[\d\w](?=[\d\w])/","\\1", $str) == substr ($str,0,1) ) return false ;
return true;
//待补充
}
/**
* 检查整数(含长度)
* @param int $val 数字
* @param int $min 最小长度默认1
* @param int $max 最大长度默认20
* @return bool
*/
public static function is_int($val, $min = 1, $max = 20) {
return preg_match("/^[0-9]{" . $min . "," . $max . "}$/", $val)? TRUE : FALSE;
}
/**
* 检查货币形式
* @param number $val 数字
* @return bool
*/
public static function is_money($val) {
if( preg_match("/^[0-9]{1,}$/", $val) ){return TRUE;}
return preg_match("/^[0-9]{1,}\.[0-9]{1,2}$/", $val)? TRUE : FALSE;
}
/**
* 检查身份证号
* @param string $str 身份证号码
* @return bool
*/
public static function is_idcard($str)
{
$vCity = array(
'11','12','13','14','15','21','22',
'23','31','32','33','34','35','36',
'37','41','42','43','44','45','46',
'50','51','52','53','54','61','62',
'63','64','65','71','81','82','91'
);
if (!preg_match('/^([\d]{17}[xX\d]|[\d]{15})$/', $str)) return false;
if (!in_array(substr($str, 0, 2), $vCity)) return false;
$str = preg_replace('/[xX]$/i', 'a', $str);
$vLength = strlen($str);
if ($vLength == 18)
{
$vBirthday = substr($str, 6, 4) . '-' . substr($str, 10, 2) . '-' . substr($str, 12, 2);
} else {
$vBirthday = '19' . substr($str, 6, 2) . '-' . substr($str, 8, 2) . '-' . substr($str, 10, 2);
}
if (date('Y-m-d', strtotime($vBirthday)) != $vBirthday) return FALSE;
if ($vLength == 18)
{
$vSum = 0;
for ($i = 17 ; $i >= 0 ; $i--)
{
$vSubStr = substr($str, 17 - $i, 1);
$vSum += (pow(2, $i) % 11) * (($vSubStr == 'a') ? 10 : intval($vSubStr , 11));
}
if($vSum % 11 != 1) return FALSE;
}
return true;
}
/**
* 检查是否为空
* @param string $str 任意待校验的字符串
* @return bool
*/
public static function is_empty($str){
$str = trim($str);
return !empty($str) ? TRUE : FALSE;
}
/**
* 检查是否为允许的图片格式JPG PNG GIF
* @param string $filename 图片文件路径和文件名
* @return bool
*/
public static function is_allow_image($filename){
if(!self::is_empty($filename)) return false;
if(!exif_imagetype($filename)) return false;
if(!strpos("123",exif_imagetype($filename)) ){return false;}
return true;
}
/**
* 检查是否为允许的内容格式
* @param string $str 正文
* @return bool
*/
public static function is_trash_content($str){
return true;
}
}
PHP验证的更多相关文章
- 【探索】无形验证码 —— PoW 算力验证
先来思考一个问题:如何写一个能消耗对方时间的程序? 消耗时间还不简单,休眠一下就可以了: Sleep(1000) 这确实消耗了时间,但并没有消耗 CPU.如果对方开了变速齿轮,这瞬间就能完成. 不过要 ...
- C# 中参数验证方式的演变
一般在写方法的时候,第一步就是进行参数验证,这也体现了编码者的细心和缜密,但是在很多时候这个过程很枯燥和乏味,比如在拿到一个API设计文档的时候,通常会规定类型参数是否允许为空,如果是字符可能有长度限 ...
- Yii1.1的验证规则
在Yii1.1的数据验证是由CValidator完成,在CValidator中提供了各种基本的验证规则 <?php public static $builtInValidators=array( ...
- 【WCF】使用“用户名/密码”验证的合理方法
我不敢说俺的方法是最佳方案,反正这世界上很多东西都是变动的,正像老子所说的——“反(返)者,道之动”.以往看到有些文章中说,为每个客户端安装证书嫌麻烦,就直接采用把用户名和密码塞在SOAP头中发送,然 ...
- PHP验证用户登录例子-学习笔记
1.基本流程: 2.UML类图: 3.PHP代码: 3.1 index.php <?php /** * Created by PhpStorm. * User: andy * Date: 16- ...
- 客户端的验证插件validator
简单,智能,令人愉悦的表单验证~~~ 官方文档:http://www.niceue.com/validator/ <!DOCTYPE html> <html> <head ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(66)-MVC WebApi 用户验证 (2)
系列目录 前言: 回顾上一节,我们利用webapi简单的登录并进行了同域访问与跨域访问来获得Token,您可以跳转到上一节下载代码来一起动手. 继续上一篇的文章,我们接下来演示利用拿到的Token来访 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(65)-MVC WebApi 用户验证 (1)
系列目录 前言: WebAPI主要开放数据给手机APP,其他需要得知数据的系统,或者软件应用,所以移动端与系统的数据源往往是相通的. Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能, ...
- 再谈C#采集,一个绕过高强度安全验证的采集方案?方案很Low,慎入
说起采集,其实我是个外行,以前拔过阿里巴巴的客户数据,在我博客的文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子) 中,介绍过采集用的工具,其实很Low的,分析 ...
- jQuery学习之路(8)- 表单验证插件-Validation
▓▓▓▓▓▓ 大致介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 ...
随机推荐
- mybaits进阶01
在以上mybait入门的改进(增加了接口让增删改查 后期跟容易) 注意:主配置文件和映射配置文件内容不变,但是映射文件要和对应接口放于同目录下并且名称必须相同 一.接口创建 public interf ...
- SpringCloud War 包部署导致服务未正常注册到 Nacos 问题
转载地址:https://blog.csdn.net/qq_28379809/article/details/103773149
- C#中Finalize方法的问题
ninputer在关于"值类型的Finalize不会被调用"中(http://blog.joycode.com/lijianzhong/archive/2005/01/13/429 ...
- windows安装trojan记录
1.trojan 客户端安装教程 https://v2raytech.com/trojan-clients/ 2.chrome安装插件(crx文件)教程 https://www.jianshu.com ...
- HCNP Routing&Switching之OSPF虚连接
前文我们了解了OSPF的网络类型.帧中继交换机映射以及路由器帧中继映射相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15195762.html:今天我 ...
- MediaWiki 语法简介
本文尚在完善中... 图片 图片官方教程 图文并茂的内容读起来总是更加舒服,让我们在wiki里引入图片. 内部图片 上传图片 点击右侧上传文件,上传文件后会获得文件名 编辑图片 文件上传后在编辑框,如 ...
- 将VSCode添加至右键菜单(Windows下)
时间:2018-11-09 记录:byzqy 问题: Windows上面安装Visual Studio Code编辑器后,常常会因为安装的时候忘记勾选等原因,没有将"Open with Co ...
- 三大操作系统对比使用之·MacOSX
时间:2018-11-13 整理:byzqy 本篇是一篇个人对Mac系统使用习惯和应用推荐的分享,在此记录,以便后续使用查询! 打开终端: command+空格,调出"聚焦搜索(Spotli ...
- python 实用技巧:几十行代码将照片转换成素描图、随后打包成可执行文件(源码分享)
效果展示 原始效果图 素描效果图 相关依赖包 # 超美观的打印库 from pprint import pprint # 图像处理库 from PIL import Image # 科学计算库 imp ...
- 类的基础语法阅读【Python3.8官网文档】
英文官方文档: https://docs.python.org/3.8/tutorial/classes.html 中文官方文档: https://docs.python.org/zh-cn/3.8/ ...