php开发之常用验证方法
function isEmail($email) {
if (!$email) {
return false;
}
return preg_match('/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$/', $email);
}
function checkEmail($email)
{
return filter_var($email, FILTER_VALIDATE_EMAIL)
}
function isMobile($mobile) {
if (!$mobile) {
return false;
}
return preg_match('/^((\(d{2,3}\))|(\d{3}\-))?1(3|5|8|9)\d{9}$/', $mobile);
}
/**
* 验证手机号
* 13[0-9], 14[5,7], 15[0, 1, 2, 3, 5, 6, 7, 8, 9], 17[6, 7, 8], 18[0-9], 170[0-9]
* 移动号段: 134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705
* 联通号段: 130,131,132,155,156,185,186,145,176,1709
* 电信号段: 133,153,180,181,189,177,1700
*/
function mobile($mobile)
{ if(preg_match('/^1(3[0-9]|4[57]|5[0-35-9]|8[0-9]|70)\\d{8}$/', $mobile)){
return ;
}elseif(preg_match('/(^1(3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])\\d{8}$)|(^1705\\d{7}$)/', $mobile)){
return ;
}elseif(preg_match('/(^1(3[0-2]|4[5]|5[56]|7[6]|8[56])\\d{8}$)|(^1709\\d{7}$)/', $mobile)){
return ;
}elseif(preg_match('/(^1(33|53|77|8[019])\\d{8}$)|(^1700\\d{7}$)/', $mobile)){
return ;
}else{
return ;
}
}
function isPostalCode($postalCode) {
if (!$postalCode) {
return false;
}
return preg_match("/^[1-9]\d{5}$/", $postalCode);
}
function isIPAddress($IPAddress) {
if (!$IPAddress) {
return false;
}
return preg_match("/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])" .
"(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/", $IPAddress);
}
function isIDCard($IDCard) {
if (!$IDCard) {
return false;
}
return preg_match('/(^([\d]{15}|[\d]{18}|[\d]{17}x)$)/', $IDCard);
}
function isCn($str){
if(preg_match("/[\x{4e00}-\x{9fa5}]+/u", $str)) {
return true;
}
return false;
}
function isNumber($str){
if(preg_match('/^\d+$/', $str)) {
return true;
}
return false;
}
function isNumSame($str){
if(preg_match('/^(\w)\1+$/', $str)) {
return true;
}
return false;
}
function isEmpty($str){
if(preg_match('/^\s*$/', $str)) {
return true;
}
return false;
}
function isUrl($url){
if(strpos('kkk' . $url, 'http')){
return true;
}
return false;
}
function willMobile($mobile) {
if (!$mobile) {
return false;
}
return preg_match('/^((\(d{2,3}\))|(\d{3}\-))?1(3|5|8|9)\d{0,9}$/', $mobile);
}
function isPhoneNumber($phone) {
if (!$phone) {
return false;
}
return preg_match('/^((0\d{3}[\-])?\d{7}|(0\d{2}[\-])?\d{8})?$/', $phone);
}
13.检测是否是地区码
function isAreaCode($code){
if (!$code) {
return false;
}
return preg_match('/^(0\d{3})|(0\d{2})$/', $code);
}
/**
* 参数验证
* @param $para 数据
* @param $standard 参数要求
* @return boolen
*/
public static function verifyParams($para, $standard)
{
if ($para === false || empty($para)) {
return false;
} foreach ($standard['REQUIRED'] as $k => $v) {
if (!array_key_exists($k, $para)) {
return false;
}
if(empty($para[$k])){
return false;
} if ('string' == $v) {
if (false === is_string($para[$k])) {
return false;
}
} else if ('int' == $v) {
if ((string)((int)($para[$k])) != $para[$k]) {
return false;
}
} else{
return false;
}
} foreach ($standard['OPTIONAL'] as $k => $v) {
if (!array_key_exists($k, $para)) {
continue;
} if ('string' == $v) {
if (!empty($para[$k]) && false === is_string($para[$k])) {
return false;
}
} else if ('int' == $v) {
if (!empty($para[$k]) && (string)((int)($para[$k])) != $para[$k]) {
return false;
}
} else {
return false;
}
} return true;
}
15.验证用户名称
function checkUsername()
{
return preg_match('/^[a-z\d_]{5,20}$/i', $username);
}
16.验证信用卡号
function checkCardNum($cc)
{
return preg_match('/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})$/', $cc)
}
17.验证域名
function checkDns($url)
{
return preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $url);
}
18.过滤内容
function filterExp(&$value){
if (preg_match_all('/^(EXP|NEQ|GT|EGT|LT|ELT|OR|XOR|LIKE|NOTLIKE|NOT BETWEEN|NOTBETWEEN|BETWEEN|NOTIN|NOT IN|IN)$/i', $value)) {
$value .= ' ';
}
}
19.是否是微信中
function is_weixin(){
if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) {
return true;
}
return false;
}
20.密码验证
function verifyPassword($password){
// 1.排除中文
if(preg_match("/[\x{4e00}-\x{9fa5}]+/u",$password)){
return '含有中文字符';
}
// 2.过滤空白字符
if(preg_match("/\s+/",$password)){
return '含有空白字符';
}
// 3.验证密码长度
$length = strlen($password);
if($length < || $length > ){
return '密码长度不够或超出';
}
$banPasswords = ['','',''];
// 4.简单字符排除
if(in_array($password,$banPasswords)){
return '密码过于简单';
}
$count = ;
// 5.是否是单一密码
for($i = ; $i < $length ; $i++){
if($password[$i] == $password[]){
$count++;
}
}
if($count == $length){
return '密码单一';
}
return true;
}
21.检测字符集是否是utf-8编码
public function is_utf8($str)
{
$c = ;
$b = ;
$bits = ;
$len = strlen($str);
for($i = ; $i < $len; $i++) {
$c = ord($str[$i]);
if ($c > ) {
if (($c >= )) return false;
elseif ($c >= ) $bits = ;
elseif ($c >= ) $bits = ;
elseif ($c >= ) $bits = ;
elseif ($c >= ) $bits = ;
elseif ($c >= ) $bits = ;
else return false;
if (($i + $bits) > $len) return false;
while ($bits > ) {
$i++;
$b = ord($str[$i]);
if ($b < || $b > ) return false;
$bits--;
}
}
}
return true;
}
22.检测session是否开启
function is_session_started()
{
if ( php_sapi_name() !== 'cli' ) {
if ( version_compare(phpversion(), '5.4.0', '>=') ) {
return session_status() === PHP_SESSION_ACTIVE ? TRUE : FALSE;
} else {
return session_id() === '' ? FALSE : TRUE;
}
}
return FALSE;
} // Example
if ( is_session_started() === FALSE ) session_start();
session 三种状态:
PHP_SESSION_DISABLED 会话被禁用
PHP_SESSION_NONE 会话启用,但会话不存在
PHP_SESSON_ACTIVE 会话启用,同时会话存在
23.验证是否是https协议
function checkSsl()
{
return (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https');
}
24.验证图片是否是真实GIF图
function checkGif($img)
{
if(!file_exists($img)){
return -;
}
$handle = fopen($img,'rb');
$img = fread($handle,'');
fclose($handle);
return strpos($img,chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0') === FALSE ? : ;
}
25.判断数组是否是多维数组
function checkMultArray($arr)
{
return count($arr) !== count($arr,1);
}
php开发之常用验证方法的更多相关文章
- rails常用验证方法 (转)
validates_presence_of :login, :message => "用户名不能为空!" validates_length_of ...
- JS常用验证方法
1.验证必须为数字(可有小数点) if(isNaN(value))execCommand('undo') 说明:1.isNaN()方法用于验证value值是否为非法数字,返回值true或者false. ...
- 【java】开发中常用字符串方法
java字符串的功能可以说非常强大, 它的每一种方法也都很有用. java字符串中常用的有两种字符串类, 分别是String类和StringBuffer类. Sting类 String类的对象是不可变 ...
- rails常用验证方法
validates_presence_of :login, :message => "用户名不能为空!" validates_length_of ...
- Android开发中常用到方法总结
1.判断服务是否在运行中 public static boolean isServiceRunning(Context context, String serviceName) { boolean ...
- IOS开发之----常用加密方法
本文转载至 http://blog.csdn.net/wildfireli/article/details/23191983 (AES.MD5.Base64) 分类: iPhone 2014-04-0 ...
- IOS开发中常用一下方法
1.获得屏幕的宽高 [UIScreen mainScreen].bounds.size.width [UIScreen mainScreen].bounds.size.height 2.Iphone版 ...
- ASP.NET开发中主要的字符验证方法-JS验证、正则表达式、验证控件、后台验证
ASP.NET开发中主要的字符验证方法-JS验证.正则表达式.验证控件.后台验证 2012年03月19日 星期一 下午 8:53 在ASP.NET开发中主要的验证方法收藏 <1>使用JS验 ...
- 2019-2-20C#开发中常用加密解密方法解析
C#开发中常用加密解密方法解析 一.MD5加密算法 我想这是大家都常听过的算法,可能也用的比较多.那么什么是MD5算法呢?MD5全称是 message-digest algorithm 5[|ˈmes ...
随机推荐
- 给 datepicker 设定日期格式
datepicker 是 JQueryUI 提供的日期控件,仅提供日期选择,不提供时间,但基本够用了. 其日期格式默认是:mm/dd/yy 格式字符代表的含义如下: d - 每月的第几天 (没有前导零 ...
- 面试总结——Java篇
前言:前期对Java基础的相关知识点进行了总结,具体参看:Java基础和面试知识点.近期由于笔者正在换工作(ing),因此下面将笔者在面试过程中或笔者朋友面试过程中反馈的题目进行总结,相信弄清楚下面题 ...
- UVA12107-Digit Puzzle(迭代加深搜索)
Problem UVA12107-Digit Puzzle Accept:85 Submit:612 Time Limit: 3000 mSec Problem Description Inpu ...
- 【转】Xposed出现 java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
Xposed出现 java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implem ...
- sql优化的几种方法
在sql查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结的一些方法,有需要的可以参考参考. 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 ord ...
- 【js】event(事件对象)详解
1.事件对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 什么时候会产生Event 对象呢? 例如: 当用户单击某个元素的时候,我们给这个元 ...
- 【vue】使用el-table时,实现批量选中效果
简单demo ①页面: <template> <el-table ref="multipleTable" :data="tableData3" ...
- python实现命令行解析的argparse的使用
参考https://docs.python.org/3.6/library/argparse.html argparse模块使编写用户友好的命令行界面变得很容易.程序定义了它需要什么参数,argpar ...
- MySQL去除查询结果重复
出现结果重复数SQL(四表关联): SELECT COUNT(post.ID ) FROM wp_posts AS post LEFT JOIN wp_term_relationships AS re ...
- redis学习(四)——Hash数据类型
一.概述 我们可以将Redis中的Hash类型看成具有String Key和String Value的map容器.所以该类型非常适合于存储值对象的信息.如Username.Password和Age等. ...