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 ...
随机推荐
- C++借助curses库实现俄罗斯方块
主要要实现如下几个功能:方块的移动控制.方块变形.判定方块是否接触边界和进行方块堆积.对方块进行消除. 1.方块的移动控制上下左右四个方向上-->变形,下-->加速下落,左-->向左 ...
- Spring的AOP开发入门,Spring整合Junit单元测试(基于ASpectJ的XML方式)
参考自 https://www.cnblogs.com/ltfxy/p/9882430.html 创建web项目,引入jar包 除了基本的6个Spring开发的jar包外,还要引入aop开发相关的四个 ...
- Spring Data JPA 简单查询--方法定义规则
一.常用规则速查 1 And 并且2 Or 或3 Is,Equals 等于4 Between 两者之间5 LessThan 小于6 LessThanEqual 小于等于7 Gre ...
- 数据合并处理concat
var data = [ {name: '海门', value: 9}, {name: '鄂尔多斯', value: 12}, {name: '招远', value: 12}, {name: '舟山' ...
- 如何征服面试官,拿到Offer [转]
转自 https://my.oschina.net/cccyb/blog/3012768 又到了茶余饭后的时间,想想写点什么,掐指一算,噢呦,快到3月份了,职场的金三银四跳槽季又来了,不同的是今年比往 ...
- 【转】CefSharp语言(Locales)本地化问题
CefSharp默认是嵌入的chrome浏览器内核,默认英文,所以右键菜单以及一些功能都是英文显示. 国内用需要汉化.CefSharp本身支持本地化Locales,需要在初始化Browser的时候设置 ...
- linux安装mysql5.7.19
0.查看操作系统内核版本 cat /proc/version [admin@octopus-att-d-030098 ~]$ cat /proc/versionLinux version 3.10.0 ...
- Luogu4983 忘情
Luogu4983 忘情 定义序列 \(x_1,\ x_2,\ \cdots,\ x_n\) 的值为 \(\frac{((\displaystyle\sum_{k=1}^nx_k\times \bar ...
- Java多线程(五)——线程等待与唤醒
一.wait().notify().notifyAll()等方法介绍 在Object.java中,定义了wait(), notify()和notifyAll()等接口.wait()的作用是让当前线程进 ...
- Linux中断管理 (1)Linux中断管理机制
目录: <Linux中断管理> <Linux中断管理 (1)Linux中断管理机制> <Linux中断管理 (2)软中断和tasklet> <Linux中断管 ...