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 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 ...
随机推荐
- uniapp 实现信息推送(App)
废话不多说直接上代码 以下代码需写在onlaunch生命周期内 onlaunch(){// onlaunch应用级生命周期 :当uni-app 初始化完成时触发(全局只触发一次) //#ifdef A ...
- NOIP 模拟 $22\; \rm f$
题解 \(by\;zj\varphi\) 对于一个数,如果它二进制下第 \(i\) 位为 \(1\),那么 \(\rm x\) 在这一位选 \(1\) 的贡献就是和它不同的最高为为 \(i\) 的数的 ...
- vue中常用插件(货币、日期)
货币插件: 价格格式化 // https://github.com/vuejs/vuex/blob/dev/examples/shopping-cart/currency.js const digit ...
- CNN卷积神经网络详解
前言 在学计算机视觉的这段时间里整理了不少的笔记,想着就把这些笔记再重新整理出来,然后写成Blog和大家一起分享.目前的计划如下(以下网络全部使用Pytorch搭建): 专题一:计算机视觉基础 介 ...
- 【mysql】用户和权限管理
1.用户管理 相关命令如下 命令 描述 备注 create user zhang3 identified by '123123'; 创建名称为zhang3 的用户,密码设为123123: sele ...
- p命名空间和c命名空间
4 p命名空间和c命名空间在通过构造方法或set方法给bean注入关联项时通常是通过constructor-arg元素和property元素来定义的.在有了p命名空间和c命名空间时我们可以简单的把它们 ...
- leaflet获取arcgis服务图层所有信息
L.esri.query({ url: "http://127.0.0.1:6080/arcgis/rest/services/demo/ditu/MapServer/0" }). ...
- Linux下用gdb 调试、查看代码堆栈
Linux中用gdb 查看代码堆栈的信息 core dump 一般是在segmentation fault(段错误)的情况下产生的文件,需要通过ulimit来设置才会得到的. 调试的话输入: gd ...
- Servlet、ServletContext与ServletConfig的详解及区别
Servlet.ServletContext与ServletConfig的详解及区别 一.Servlet详解 Servlet是一个interface,全局限定名:javax.servlet.Servl ...
- Vue.JS快速上手(组件生命周期)
一.什么是组件 组成网页独立功能基本单元(片段), 复用.维护.性能, Vue.js中的组件就是一个Vue的实例,Vue中的组件包含data/methods/computed. 一个Vue.js的应用 ...