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


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 相关文章推荐
使用TinyButStrong模板引擎来做WEB开发
Mar 16 PHP
PHP入门学习的几个不错的实例代码
Jul 13 PHP
初次接触php抽象工厂模式(Elgg)
Mar 21 PHP
PHP中数字检测is_numeric与ctype_digit的区别介绍
Oct 04 PHP
php 判断数组是几维数组
Mar 20 PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
Jun 08 PHP
PHP中多维数组的foreach遍历示例
Jun 13 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 PHP
[原创]php正则删除img标签的方法示例
May 27 PHP
php如何修改SESSION的生存存储时间的实例代码
Jul 05 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
PHP实现的curl批量请求操作示例
Jun 06 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
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
PHP strtotime函数详解
2009/12/18 PHP
QQ互联一键登录审核不通过的解决方案
2014/09/10 PHP
Symfony控制层深入详解
2016/03/17 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
jQuery拖拽div实现思路
2014/02/19 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
JS创建Tag标签的方法详解
2017/06/09 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
微信小程序倒计时功能实现代码
2017/11/09 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
React组件重构之嵌套+继承及高阶组件详解
2018/07/19 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
JavaScript实现更换背景图片
2019/10/18 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
2020/08/03 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
python开发利器之ulipad的使用实践
2017/03/16 Python
详解python3中socket套接字的编码问题解决
2017/07/01 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
如何关掉pycharm中的python console(图解)
2019/10/31 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
精通CAD能手自荐书
2014/01/31 职场文书
技校毕业生自荐信范文
2014/03/07 职场文书
小学开学标语
2014/07/01 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
2014年结对帮扶工作总结
2014/12/17 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
交通安全月活动总结
2015/05/08 职场文书
大学新生入学感想
2015/08/07 职场文书
新手入门Mysql--sql执行过程
2021/06/20 MySQL