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 相关文章推荐
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
Jun 08 PHP
discuz authcode 经典php加密解密函数解析
Jul 12 PHP
解析php中array_merge与array+array的区别
Jun 21 PHP
PHP连接SQLServer2005方法及代码
Dec 26 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
CodeIgniter辅助之第三方类库third_party用法分析
Jan 20 PHP
用PHP写的一个冒泡排序法的函数简单实例
May 26 PHP
php实现36进制与10进制转换功能示例
Jan 10 PHP
php接口实现拖拽排序功能
Apr 23 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
Oct 25 PHP
浅谈PHP中的Trait使用方法
Mar 22 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
Apr 30 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(4) php 函数 补充2
2010/02/15 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
php文件操作相关类实例
2015/06/18 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
js获取变量
2006/08/24 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
Js与Jq 获取页面元素值的方法和差异对比
2015/04/30 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
详解Angular 自定义结构指令
2017/06/21 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
基于D3.js实现时钟效果
2018/07/17 Javascript
Node.js 多线程完全指南总结
2019/03/27 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 jQuery
JS实现简易留言板增删功能
2020/02/08 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
[01:42]TI4西雅图DOTA2前线报道 第一顿早饭哦
2014/07/08 DOTA
Python中super函数的用法
2017/11/17 Python
Django自定义manage命令实例代码
2018/02/11 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
Python for循环生成列表的实例
2018/06/15 Python
python3.6的venv模块使用详解
2018/08/01 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
考试退步检讨书
2014/01/15 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
班主任工作实习计划
2015/01/16 职场文书
2016春季运动会前导词
2015/11/25 职场文书
Pytest中skip和skipif的具体使用方法
2021/06/30 Python
MySQL令人大跌眼镜的隐式转换
2021/08/23 MySQL