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_Flame(Version:Progress)的原代码
Oct 09 PHP
PHP中的strtr函数使用介绍(str_replace)
Oct 20 PHP
解析php中call_user_func_array的作用
Jun 07 PHP
PHP删除HTMl标签的三种解决方法
Jun 30 PHP
深入解析PHP中逗号与点号的区别
Aug 05 PHP
php自定文件保存session的方法
Dec 10 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
Mar 11 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
Mar 18 PHP
PHP.vs.JAVA
Apr 29 PHP
360搜索引擎自动收录php改写方案
Apr 28 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
Jul 20 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
Dec 12 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操作mysql数据库类
2014/12/08 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
2010/11/16 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
详解用函数式编程对JavaScript进行断舍离
2017/09/18 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
vue中使用[provide/inject]实现页面reload的方法
2019/09/30 Javascript
Django URL传递参数的方法总结
2016/08/28 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
2018/05/11 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
土木工程毕业生推荐信
2013/10/28 职场文书
应届大学生求职的自我评价
2013/11/17 职场文书
施工资料员的岗位职责
2013/12/22 职场文书
2014新年寄语
2014/01/20 职场文书
中秋节超市促销方案
2014/01/30 职场文书
大学生简历求职信
2014/06/24 职场文书
发展党员工作情况汇报
2014/10/28 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
公司辞职信模板
2015/05/13 职场文书
离婚案件答辩状
2015/05/22 职场文书
推销搭讪开场白
2015/05/28 职场文书
工程进度款催款函
2015/06/24 职场文书
红歌会主持词
2015/07/02 职场文书
大学学习委员竞选稿
2015/11/20 职场文书
Python利用folium实现地图可视化
2021/05/23 Python
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle