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 原来也不过如此~~呵呵
Nov 25 PHP
PHP常用开发函数解析之数组篇[未完结]
Jul 30 PHP
php发送post请求的三种方法
Feb 11 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
Jun 23 PHP
PHP反射使用实例和PHP反射API的中文说明
Jul 02 PHP
php实现建立多层级目录的方法
Jul 19 PHP
php中mt_rand()随机数函数用法
Nov 24 PHP
写一段简单的PHP建立文件夹代码
Jan 06 PHP
PHP实现的mongoDB数据库操作类完整实例
Apr 10 PHP
php-app开发接口加密详解
Apr 18 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
Feb 13 PHP
实例介绍PHP删除数组中的重复元素
Mar 03 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
url decode problem 解决方法
2011/12/26 PHP
PHP设计模式之迭代器模式的深入解析
2013/06/13 PHP
使用PHP导出Redis数据到另一个Redis中的代码
2014/03/12 PHP
JQuery触发radio或checkbox的change事件
2012/12/18 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
Angular实现form自动布局
2016/01/28 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
JavaScript实现快速排序的方法分析
2018/01/10 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
2018/04/26 jQuery
Vue三种常用传值示例(父传子、子传父、非父子)
2018/07/24 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
详解react组件通讯方式(多种)
2020/05/06 Javascript
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
Python实现简单截取中文字符串的方法
2015/06/15 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
对Python实现累加函数的方法详解
2019/01/23 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
python regex库实例用法总结
2021/01/03 Python
国际领先的学术出版商:Springer
2017/01/11 全球购物
计算机专业个人简短的自我评价
2013/10/23 职场文书
教学实验楼管理制度
2014/02/01 职场文书
个人委托书怎么写
2014/04/04 职场文书
车贷收入证明范本
2014/09/14 职场文书
外国人来华邀请函
2015/01/31 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
15个值得收藏的JavaScript函数
2021/09/15 Javascript
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫