常用表单验证类,有了这个,一般的验证就都齐了。


Posted in PHP onDecember 06, 2006
<?php   
/**   
 * 页面作用:常用表单验证类   
 * 作    者:欣然随风   
 * 建立时间:2006-3-6   
 * QQ:276624915   
 */   
class class_post   
{   
 //验证是否为指定长度的字母/数字组合   
 function fun_text1($num1,$num2,$str)   
 {   
    Return (preg_match("/^[a-zA-Z0-9]{".$num1.",".$num2."}$/",$str))?true:false;   
 }    //验证是否为指定长度数字   
 function fun_text2($num1,$num2,$str)   
 {   
    return (preg_match("/^[0-9]{".$num1.",".$num2."}$/i",$str))?true:false;   
 }    
 //验证是否为指定长度汉字   
 function fun_font($num1,$num2,$str)   
 {   
 // preg_match("/^[\xa0-\xff]{1,4}$/", $string);   
    return (preg_match("/^([\x81-\xfe][\x40-\xfe]){".$num1.",".$num2."}$/",$str))?true:false;   
 }   
 //验证身份证号码   
 function fun_status($str)   
 {   
    return (preg_match('/(^([\d]{15}|[\d]{18}|[\d]{17}x)$)/',$str))?true:false;   
 }   
 //验证邮件地址   
 function fun_email($str){   
    return (preg_match('/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$/',$str))?true:false;   
 }   
 //验证电话号码   
 function fun_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;   
 }   
 //验证邮编   
 function fun_zip($str)   
 {   
  return (preg_match("/^[1-9]\d{5}$/",$str))?true:false;   
 }   
 //验证url地址   
 function fun_url($str)   
 {   
  return (preg_match("/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/",$str))?true:false;   
 }    
 // 数据入库 转义 特殊字符 传入值可为字符串 或 一维数组   
 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;   
 }   
 // 数据出库 还原 特殊字符 传入值可为字符串 或 一/二维数组   
 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;   
 }   
 }   
?>
PHP 相关文章推荐
dede3.1分页文字采集过滤规则详说(图文教程)
Apr 03 PHP
轻松修复Discuz!数据库
May 03 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
Oct 25 PHP
php实现下载限制速度示例分享
Feb 13 PHP
php中error与exception的区别及应用
Jul 28 PHP
php合并数组中相同元素的方法
Nov 13 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
Zend Framework教程之Zend_Registry对象用法分析
Mar 22 PHP
实例讲解PHP中使用命名空间
Jan 27 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
May 20 PHP
Laravel框架之解决前端显示图片问题
Oct 24 PHP
PHP利用curl发送HTTP请求的实例代码
Jul 09 PHP
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
Dec 06 #PHP
PHP分页显示制作详细讲解
Dec 05 #PHP
PHP生成静态页面详解
Dec 05 #PHP
详解:――如何将图片储存在数据库里
Dec 05 #PHP
怎样才能成为PHP高手?学会“懒惰”的编程
Dec 05 #PHP
PHP开发入门教程之面向对象
Dec 05 #PHP
特转载一高手总结PHP学习资源和链接.
Dec 05 #PHP
You might like
用PHP读取flv文件的播放时间长度
2009/09/03 PHP
php生成curl命令行的方法
2015/12/14 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
十分钟打造AutoComplete自动完成效果代码
2009/12/26 Javascript
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
php main 与 iframe 相互通讯类(js+php同域/跨域)
2017/09/14 Javascript
Angularjs自定义指令实现分页插件(DEMO)
2017/09/16 Javascript
ui-router中使用ocLazyLoad和resolve的具体方法
2017/10/18 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
通过nodejs 服务器读取HTML文件渲染到页面的方法
2018/05/17 NodeJs
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
生物科学专业职业规划书范文
2014/02/11 职场文书
高等教育学专业自荐书
2014/06/17 职场文书
写作技巧:如何撰写一份优秀的营销策划书
2019/08/13 职场文书
Feign调用全局异常处理解决方案
2021/06/24 Java/Android