php输入数据统一类实例


Posted in PHP onFebruary 23, 2015

本文实例讲述了php输入数据统一类。分享给大家供大家参考。具体如下:

<?php
class cls_request{
 private $getdata;//存储get的数据
 private $postdata;//存储post的数据
 private $requestdata;//存储request的数据
 private $filedata;//存储file的数据
 private $cookiedata;//存储cooki
 static $_instance;//本类的实例
 
 private function __construct(){
 $this->getdata = self::format_data($_GET);
 $this->postdata = self::format_data($_POST);
 $this->requestdata = array_merge($this->getdata,$this->postdata);
 $this->cookiedata = self::format_data($_COOKIE);
 $this->filedata = self::format_data($_FILES);
 }
 //类的初始化,返回cls_request对象
 public static function get_instance(){
 if(!(self::$_instance instanceof self)){
  self::$_instance = new self();
 }
 return self::$_instance;
 }
 //获取GET传递过来的数值变量
 public function get_num($key){
 if(!isset($this->getdata[$key])){
  return false;
 }
 return $this->to_num($this->getdata[$key]);
 }
 //获取POST传递过来的数据变量
 public function post_num($key){
 if(!isset($this->postdata[$key])){
  return false;
 }
 return $this->to_num($this->postdata[$key]);
 }
 //获取Request传递过来的数值变量
 public function request_num($key){
 if(!isset($this->requestdata[$key])){
  return false;
 }
 return $this->to_num($this->requestdata[$key]);
 }
 //获取Cookie传递过来的数值变量
 public function cookie_num($key){
 if(!isset($this->cookiedata[$key])){
  return false;
 }
 return $this->to_num($this->cookiedata[$key]);
 }
 //获取File传递过来的数值变量
 public function filedata($key){
 return $this->filedata[$key];//返回数组
 }
 //获取GET传递过来的字符串变量
 public function get_string($key,$isfilter=true){
 if(!isset($this->getdata[$key])){
  return false;
 }
 if($isfilter){
  return $this->filter_string($this->getdata[$key]);
 }else{
  return $this->getdata[$key];
 }
 }
 //获取POST传递过来的字符串变量
 public function post_string($key,$isfilter=true){
 if(!isset($this->postdata[$key])){
  return false;
 }
 if($isfilter){
  return $this->filter_string($this->postdata[$key]);
 }else{
  return $this->postdata[$key];
 }
 }
 //获取Request传递过来的字符串变量
 public function request_string($key,$isfilter=true){
 if(!isset($this->requestdata[$key])){
  return false;
 }
 if($isfilter){
  return $this->filter_string($this->requestdata[$key]);
 }else{
  return $this->requestdata[$key];
 }
 }
 //获取Cookie传递过来的字符串变量
 public function cookie_string($key,$isfilter=true){
 if(!isset($this->cookiedata[$key])){
  return false;
 }
 if($isfilter){
  return $this->filter_string($this->cookiedata[$key]);
 }else{
  return $this->cookiedata[$key];
 }
 }
 //格式化数据
 private function format_data($data){
 $result = array();
 if(!is_array($data)){
  $data = array();
 }
 /*
 *list()表示用数组的数值给变量赋值。只用于数字索引的数组,
 *默认从0位开始,按顺序下去
 *each()
 */
 while(list($key,$value) = each($data)){//不太明白
  //处理checkbox之类的数据
  if(is_array($value)){
  $result[$key]=$value;
  }else{//普通数据
  $result[$key] = trim($value);
  //删除字符串两端空白及其它预定义字符
  }
 }
 }
 //转化数字
 private function to_num($num){
 if(is_numeric($num)){
  return intval($num);//将变量转为整数
 }else{
  return false;
 }
 }
 //过换过滤字符串
 private function filter_string($data){
 if($data===null){
  return false;
 }
 if(is_array($data)){
  foreach($data as $k=>$v){
  $data[$k] = htmlspecialchars($v,ENT_QUOTES);
  //把一些预定义字符转化为html实体
  }
  return $data;
 }else{//普通字符串
  return htmlspecialchars($data,ENT_QUOTES);
 }
 }
}
?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
php5 图片验证码实现代码
Dec 11 PHP
php 无法载入mysql扩展
Mar 12 PHP
PHP 面向对象 PHP5 中的常量
May 05 PHP
ThinkPHP提交表单时默认自动转义的解决方法
Nov 25 PHP
php遍历树的常用方法汇总
Jun 18 PHP
php实现的日历程序
Jun 18 PHP
PHP使用NuSOAP调用Web服务的方法
Jul 18 PHP
php检测文本的编码
Jul 26 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
Dec 23 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
在laravel5.2中实现点击用户头像更改头像的方法
Oct 14 PHP
php简单定时执行任务的实现方法
Feb 23 #PHP
Yii学习总结之数据访问对象 (DAO)
Feb 22 #PHP
Yii学习总结之安装配置
Feb 22 #PHP
使用php的HTTP请求的库Requests实现美女图片墙
Feb 22 #PHP
十幅图告诉你什么是PHP引用
Feb 22 #PHP
PHP的引用详解
Feb 22 #PHP
PHP实现加密的几种方式介绍
Feb 22 #PHP
You might like
php数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
2017/09/01 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
dojo 之基础篇
2007/03/24 Javascript
Javascript改变CSS样式(局部和全局)
2013/12/18 Javascript
js实现连个数字相加而不是拼接的方法
2014/02/23 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
javascript实现复选框全选或反选
2017/02/04 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
2018/09/21 Javascript
JS div匀速移动动画与变速移动动画代码实例
2019/03/26 Javascript
微信小程序实现文件、图片上传功能
2020/08/18 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
Python中返回字典键的值的values()方法使用
2015/05/22 Python
Python多线程结合队列下载百度音乐的方法
2015/07/27 Python
Python中MySQLdb和torndb模块对MySQL的断连问题处理
2015/11/09 Python
PyQt5打开文件对话框QFileDialog实例代码
2018/02/07 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
html如何对span设置宽度
2019/10/30 HTML / CSS
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
商务英语求职信范文
2015/03/19 职场文书
自考生自我评价
2019/06/21 职场文书
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android
MySQL三种方式实现递归查询
2022/04/18 MySQL