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 相关文章推荐
给php新手谈谈我的学习心得
Feb 25 PHP
php之字符串变相相减的代码
Mar 19 PHP
php $_SERVER当前完整url的写法
Nov 12 PHP
php数据结构与算法(PHP描述) 快速排序 quick sort
Jun 21 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
Jun 12 PHP
php调用shell的方法
Nov 05 PHP
php网页病毒清除类
Dec 08 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
PHP判断IP并转跳到相应城市分站的方法
Mar 25 PHP
php 类自动载入的方法
Jun 03 PHP
php使用glob函数遍历文件和目录详解
Sep 23 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 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
对text数据类型不支持代码页转换 从: 1252 到: 936
2011/04/23 PHP
php cookie名使用点号(句号)会被转换
2014/10/23 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
php使用number_format函数截取小数的方法分析
2016/05/27 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
动态加载脚本提升javascript性能
2014/02/24 Javascript
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码
2015/09/09 Javascript
JavaScript各类型的关系图解
2015/10/16 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
js将键值对字符串转为json字符串的方法
2018/03/30 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
微信小程序之几种常见的弹框提示信息实现详解
2019/07/11 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
JavaScript 继承 封装 多态实现及原理详解
2019/07/29 Javascript
如何基于javascript实现贪吃蛇游戏
2020/02/09 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
Python安装第三方库及常见问题处理方法汇总
2016/09/13 Python
通过Python实现自动填写调查问卷
2017/09/06 Python
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
python构建基础的爬虫教学
2018/12/23 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
python通过SSH登陆linux并操作的实现
2019/10/10 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
大学生个人简历中的自我评价
2013/12/27 职场文书
中学生自我评价范文
2014/02/08 职场文书
成绩单公证书
2014/04/10 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
nginx搭建图片服务器的过程详解(root和alias的区别)
2021/03/31 Servers
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python
Python使用BeautifulSoup4修改网页内容
2022/05/20 Python