php常用表单验证类用法实例


Posted in PHP onJune 18, 2015

本文实例讲述了php常用表单验证类用法。分享给大家供大家参考。具体如下:

<?php
/**
* 页面作用:常用表单验证类
* 作 者:欣然随风
* 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 相关文章推荐
PHP与已存在的Java应用程序集成
Oct 09 PHP
PHP+MYSQL开发工具及资源收藏
Jan 02 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
Apr 09 PHP
如何使用PHP计算上一个月的今天
May 23 PHP
PHP判断指定时间段的2个方法
Mar 14 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
Codeigniter控制器controller继承问题实例分析
Jan 19 PHP
PHP文件缓存smarty模板应用实例分析
Feb 26 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
Jun 13 PHP
PHP实现获取url地址中顶级域名的方法示例
Jun 05 PHP
在laravel中实现事务回滚的方法
Oct 10 PHP
PHP如何使用array_unshift()在数组开头插入元素
Sep 01 PHP
php文件压缩之PHPZip类用法实例
Jun 18 #PHP
浅谈php中include文件变量作用域
Jun 18 #PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 #PHP
php实现只保留mysql中最新1000条记录
Jun 18 #PHP
php使用COPY函数更新配置文件的方法
Jun 18 #PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 #PHP
php实现mysql数据库分表分段备份
Jun 18 #PHP
You might like
php模拟js函数unescape的函数代码
2012/10/20 PHP
yii中widget的用法
2014/12/03 PHP
php-app开发接口加密详解
2018/04/18 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
JavaScript函数详解
2014/11/17 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
在vue项目中使用Nprogress.js进度条的方法
2018/01/31 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
2019/01/24 Javascript
JavaScript创建、读取和删除cookie
2019/09/03 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
js cavans实现静态滚动弹幕
2020/05/21 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
分析经典Python开发工程师面试题
2019/04/08 Python
pycharm如何实现跨目录调用文件
2020/02/28 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
详解Python中的编码问题(encoding与decode、str与bytes)
2020/09/30 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
产品质量承诺书范文
2014/03/27 职场文书
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python