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 相关文章推荐
smarty+adodb+部分自定义类的php开发模式
Dec 31 PHP
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
Apr 12 PHP
php面向对象全攻略 (五) 封装性
Sep 30 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
Apr 12 PHP
php数组函数序列之in_array() - 查找数组中是否存在指定值
Nov 07 PHP
PHP中的正则表达式函数介绍
Feb 27 PHP
PHP 之Section与Cookie使用总结
Sep 14 PHP
php模板函数 正则实现代码
Oct 15 PHP
使用PHPExcel操作Excel用法实例分析
Mar 26 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
Oct 18 PHP
PHP面向对象程序设计之构造方法和析构方法详解
Jun 13 PHP
php判断数组是否为空的实例方法
May 10 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读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
php判断GIF图片是否为动画的方法
2020/09/04 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
基于jquery 的一个progressbar widge
2010/10/29 Javascript
javascript基础知识大集锦(一) 推荐收藏
2011/01/13 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
深入理解javascript的执行顺序
2014/04/04 Javascript
jquery实现数字输入框
2017/02/22 Javascript
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
python生成器与迭代器详解
2019/01/01 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
2019/03/30 Python
20行python代码实现人脸识别
2019/05/05 Python
Cython编译python为so 代码加密示例
2019/12/23 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
pymysql模块使用简介与示例
2020/11/17 Python
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
环境科学毕业生自荐信
2013/11/21 职场文书
2014的自我评价
2014/01/13 职场文书
积极贯彻学习两会精神总结
2014/03/17 职场文书
环境整治工作方案
2014/05/18 职场文书
家具商场的活动方案
2014/08/16 职场文书
人事文员岗位职责
2015/02/04 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers