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 相关文章推荐
PHP4 与 MySQL 交互使用
Oct 09 PHP
其他功能
Oct 09 PHP
关于PHP5 Session生命周期介绍
Mar 02 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
Aug 03 PHP
PHP 第二节 数据类型之字符串类型
Apr 28 PHP
PHP错误和异长常处理总结
Mar 06 PHP
PHP会话控制:Session与Cookie详解
Sep 27 PHP
浅析THINKPHP的addAll支持的最大数据量
Feb 03 PHP
PHP计算指定日期所在周的开始和结束日期的方法
Mar 24 PHP
Yii2使用表单上传文件的实例代码
Aug 03 PHP
php依赖注入知识点详解
Sep 23 PHP
yii2.0框架场景的简单使用示例
Jan 25 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
第十三节--对象串行化
2006/11/16 PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
2010/02/16 PHP
PHP数据流应用的一个简单实例
2012/09/14 PHP
php将session放入memcached的设置方法
2014/02/14 PHP
取得一定长度的内容,处理中文
2006/12/20 Javascript
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
javascript全局变量封装模块实现代码
2012/11/28 Javascript
js特殊字符转义介绍
2013/11/05 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
2017/03/21 jQuery
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
pymongo中group by的操作方法教程
2019/03/22 Python
Python实现FTP文件传输的实例
2019/07/07 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
Python 没有main函数的原因
2020/07/10 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
python mock测试的示例
2020/10/19 Python
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
小学数学教学经验交流材料
2014/05/22 职场文书
法人授权委托书
2014/09/16 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
小学毕业教师寄语
2019/06/21 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP