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


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 相关文章推荐
php后台多用户权限组思路与实现程序代码分享
Feb 13 PHP
解决File size limit exceeded 错误的方法
Jun 14 PHP
使用Discuz关键词服务器实现PHP中文分词
Mar 11 PHP
php实现无限级分类
Dec 24 PHP
PHP基于文件存储实现缓存的方法
Jul 20 PHP
php进程间通讯实例分析
Jul 11 PHP
yii框架无限极分类的实现方法
Apr 08 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 PHP
php字符串过滤strip_tags()函数用法实例分析
Jun 24 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 PHP
使用Git实现Laravel项目的自动化部署
Nov 24 PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 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五种设计模式小结
2011/03/23 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
javascript中DOM复选框选择用法实例
2015/05/14 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
Bootstrap Img 图片样式(推荐)
2016/12/13 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
JS正则匹配中文的方法示例
2017/01/06 Javascript
canvas绘制多边形
2017/02/24 Javascript
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
浅谈mint-ui 填坑之路
2017/11/06 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
小程序关于请求同步的总结
2019/05/05 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
用Python实现一个简单的线程池
2015/04/07 Python
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
Expedia英国:全球最大的在线旅游公司
2017/09/07 全球购物
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
如何提高SQL Server的安全性
2016/07/25 面试题
《鱼游到了纸上》教学反思
2014/02/20 职场文书
向领导表决心的话
2014/03/11 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
python使用openpyxl库读写Excel表格的方法(增删改查操作)
2021/05/02 Python
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS