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中的this,self和parent关键字详解教程
Mar 19 PHP
由php if 想到的些问题
Mar 22 PHP
Cakephp 执行主要流程
Mar 24 PHP
纯php打造的tab选项卡效果代码(不用js)
Dec 29 PHP
PHP的一个基础知识 表单提交
Jul 04 PHP
php 读取文件头判断文件类型的实现代码
Aug 05 PHP
php中引用符号(&amp;)的使用详解
Nov 13 PHP
分享PHP计算两个日期相差天数的代码
Dec 23 PHP
PHP解压ZIP文件到指定文件夹的方法
Nov 17 PHP
ThinkPHP删除栏目(实现批量删除栏目)
Jun 21 PHP
laravel dingo API返回自定义错误信息的实例
Sep 29 PHP
PHP如何使用array_unshift()在数组开头插入元素
Sep 01 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中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
原生js和jquery分别实现横向导航菜单效果
2016/05/13 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
2017/01/04 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
2017/08/16 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
2019/06/06 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
在django中使用自定义标签实现分页功能
2017/07/04 Python
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
python机器学习之贝叶斯分类
2018/03/26 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
python3使用GUI统计代码量
2019/09/18 Python
使用CSS3的ruby-position固定注音位置的用法示例
2016/07/05 HTML / CSS
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
Fossil美国官网:化石手表、手袋、首饰及配饰
2019/02/17 全球购物
移动通信专业自荐信范文
2013/11/12 职场文书
2015年元旦标语大全
2014/12/09 职场文书
高一军训决心书
2015/02/05 职场文书
新郎接新娘保证书
2015/05/08 职场文书
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
MySQL数据库事务的四大特性
2022/04/20 MySQL