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


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来写记数器(详细介绍)
Oct 09 PHP
PHP Squid中可缓存的动态网页设计
Sep 17 PHP
PHP笔记之:基于面向对象设计的详解
May 14 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
Jun 05 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
Jan 14 PHP
百度ping方法使用示例 自动ping百度
Jan 26 PHP
php构造方法中析构方法在继承中的表现
Apr 12 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
Feb 25 PHP
mac系统下安装多个php并自由切换的方法详解
Apr 21 PHP
php写app接口并返回json数据的实例(分享)
May 20 PHP
PHP中引用类型和值类型功能与用法示例
Feb 26 PHP
phpstudy隐藏index.php的方法
Sep 21 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实现长连接的方法与注意事项的问题
2013/05/10 PHP
php登陆页的密码处理方式分享
2013/10/14 PHP
PHP数组操作类实例
2015/07/11 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
javascript中万恶的function实例分析
2011/05/25 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
详解addEventListener的三个参数之useCapture
2015/03/16 Javascript
jQuery实现网页顶部固定导航效果代码
2015/12/24 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
炫酷的js手风琴效果
2016/10/13 Javascript
angular中的cookie读写方法
2017/08/02 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
2018/08/27 Javascript
vue 表单验证按钮事件交由父组件触发的方法
2018/12/17 Javascript
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
layUI实现前端分页和后端分页
2019/07/27 Javascript
vue实现文字加密功能
2019/09/27 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
Python and、or以及and-or语法总结
2015/04/14 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
Python datetime包函数简单介绍
2019/08/28 Python
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
市政工程技术专业自荐书
2014/07/06 职场文书
计算机实训报告范文
2014/11/05 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
合作意向书范本
2019/04/17 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers