1 Star 0 Fork 1

Admin/PHP_class

forked from birch/PHP_class 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
FormValidate.Class.php 6.64 KB
一键复制 编辑 原始数据 按行查看 历史
birch 提交于 2018-09-19 15:01 . gg
<?php
/**
* 常用表单验证类
*/
class FormValidate
{
/** 验证是否为指定长度的字母大小写/数字组合
* @param $num1 字符串的最小长度
* @param $num2 字符串的最大长度
* @param $str 待验证的字符串
* @return bool 返回逻辑值
*/
function Is_WordNumeric($num1,$num2,$str)
{
Return (preg_match("/^[a-zA-Z0-9]{".$num1.",".$num2."}$/",$str))?true:false;
}
/** 用户账号验证 字母开头 允许大小写字母和数字、下划线,5 到16字节长度
* @param $str 待验证用户名
* @return bool 返回逻辑值
*/
function Is_UserCount($str){
Return (preg_match("/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/",$str))?true:false;
}
/** 密码验证 允许长度6 到16位 包含字符\~!@#$%^&*()-_+=|{}[]\:;'"
* @param $str 待验证密码
* @param $minLen 限制最小长度 默认6
* @param $maxLen 限制最大长度16
* @return bool 返回逻辑值
*/
function Is_PassWord($str,$minLen =5 ,$maxLen=16)
{
Return (preg_match("/^[\\~!@#$%^&*()-_=+|{}\[\],.?\/:;\'\"\d\w]{".$minLen.",".$maxLen."}$/",$str))?true:false;
}
/** 验证是否为指定长度数字
* @param $num1 指定数字最小位数长度
* @param $num2 指定数字最大位数长度
* @param $str 待验证数字
* @return bool 返回逻辑值
*/
function Is_Numeric($num1,$num2,$str)
{
return (preg_match("/^[0-9]{".$num1.",".$num2."}$/i",$str))?true:false;
}
/** 验证是否为指定长度汉字
* @param $num1 指定最小长度
* @param $num2 指定最大长度
* @param $str 待验证字符串
* @return bool 返回逻辑值
*/
function Is_Hanzi($num1,$num2,$str)
{
// preg_match("/^[\xa0-\xff]{1,4}$/", $string);
return (preg_match("/^([\x81-\xfe][\x40-\xfe]){".$num1.",".$num2."}$/",$str))?true:false;
}
/** 验证身份证号码
* @param $id 待验证身份证号码
* @return bool 返回逻辑值
*/
function Is_idcard( $id )
{
$id = strtoupper($id);
$regx = "/(^\d{15}$)|(^\d{17}([0-9]|X)$)/";
$arr_split = array();
if(!preg_match($regx, $id))
{
return FALSE;
}
if(15==strlen($id)) //检查15位
{
$regx = "/^(\d{6})+(\d{2})+(\d{2})+(\d{2})+(\d{3})$/";
@preg_match($regx, $id, $arr_split);
//检查生日日期是否正确
$dtm_birth = "19".$arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];
if(!strtotime($dtm_birth))
{
return FALSE;
} else {
return TRUE;
}
}
else //检查18位
{
$regx = "/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/";
@preg_match($regx, $id, $arr_split);
$dtm_birth = $arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];
if(!strtotime($dtm_birth)) //检查生日日期是否正确
{
return FALSE;
}
else
{
//检验18位身份证的校验码是否正确。
//校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
$arr_int = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
$arr_ch = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
$sign = 0;
for ( $i = 0; $i < 17; $i++ )
{
$b = (int) $id{$i};
$w = $arr_int[$i];
$sign += $b * $w;
}
$n = $sign % 11;
$val_num = $arr_ch[$n];
if ($val_num != substr($id,17, 1))
{
return FALSE;
} //phpfensi.com
else
{
return TRUE;
}
}
}
}
/** 验证邮件地址
* @param $str 待验证邮件地址
* @return bool 返回逻辑值
*/
function Is_email($str){
return (preg_match('/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$/',$str))?true:false;
}
/** 验证固定电话号码 0XXX-XXXXXX
* @param $str
* @return bool
*/
function Is_phone($str)
{
return (preg_match("/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/",$str))?true:false;
}
/** 验证邮编
* @param $str 待验证邮政编码
* @return bool 返回逻辑值
*/
function Is_zip($str)
{
return (preg_match("/^[1-9]\d{5}$/",$str))?true:false;
}
/** 验证url地址
* @param $str 待验证网址
* @return bool 返回逻辑值
*/
function Is_url($str)
{
return (preg_match("/^^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+$/",$str))?true:false;
}
/** 数据入库 转义 特殊字符 传入值可为字符串 或 一维数组
* @param $data 待转义的字符串
* @return array|string 返回转义后的字符串
*/
function data_join(&$data)
{
if(get_magic_quotes_gpc() == false)
{
if (is_array($data))
{
foreach ($data as $k => $v)
{
$data[$k] = addslashes($v);
}
}
else
{
$data = addslashes($data);
}
}
Return $data;
}
/** 数据出库 还原 特殊字符 传入值可为字符串 或 一/二维数组
* @param $data 数据库读出哦字符串
* @return array|string 还原为正常的字符串
*/
function data_revert(&$data)
{
if (is_array($data))
{
foreach ($data as $k1 => $v1)
{
if (is_array($v1))
{
foreach ($v1 as $k2 => $v2)
{
$data[$k1][$k2] = stripslashes($v2);
}
}
else
{
$data[$k1] = stripslashes($v1);
}
}
}
else
{
$data = stripslashes($data);
}
Return $data;
}
// 数据显示 还原 数据格式 主要用于内容输出 传入值可为字符串 或 一/二维数组
// 执行此方法前应先data_revert(),表单内容无须此还原
function data_show(&$data)
{
if (is_array($data))
{
foreach ($data as $k1 => $v1)
{
if (is_array($v1))
{
foreach ($v1 as $k2 => $v2)
{
$data[$k1][$k2]=nl2br(htmlspecialchars($data[$k1][$k2]));
$data[$k1][$k2]=str_replace(" "," ",$data[$k1][$k2]);
$data[$k1][$k2]=str_replace("\n","<br>\n",$data[$k1][$k2]);
}
}
else
{
$data[$k1]=nl2br(htmlspecialchars($data[$k1]));
$data[$k1]=str_replace(" "," ",$data[$k1]);
$data[$k1]=str_replace("\n","<br>\n",$data[$k1]);
}
}
}
else
{
$data=nl2br(htmlspecialchars($data));
$data=str_replace(" "," ",$data);
$data=str_replace("\n","<br>\n",$data);
}
Return $data;
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/yinjiangbi_admin/php_class_library.git
git@gitee.com:yinjiangbi_admin/php_class_library.git
yinjiangbi_admin
php_class_library
PHP_class
master

搜索帮助