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 和 MySQL 时区的一点总结
Mar 26 PHP
PHP合并两个数组的两种方式的异同
Sep 14 PHP
php定时计划任务的实现方法详解
Jun 06 PHP
Thinkphp的volist标签嵌套循环使用教程
Jul 08 PHP
php实现设计模式中的单例模式详解
Oct 11 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
PHP的Yii框架的常用日志操作总结
Dec 08 PHP
Yii清理缓存的方法
Jan 06 PHP
PHP中的数组处理函数实例总结
Jan 09 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
PHP7.3.10编译安装教程
Oct 08 PHP
通过代码实例解析PHP session工作原理
Dec 11 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效率,提高php性能的一些方法
2011/03/24 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
Jquery cookie操作代码
2010/03/14 Javascript
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
javascript解决小数的加减乘除精度丢失的方案
2016/05/31 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
2016/08/25 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
详解JavaScript中操作符和表达式
2018/09/12 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
pandas通过索引进行排序的示例
2018/11/16 Python
详解python中的index函数用法
2019/08/06 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
校园环保建议书
2014/05/14 职场文书
冬季安全检查方案
2014/05/23 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
个人总结与自我评价
2014/09/18 职场文书
2014年保卫科工作总结
2014/12/05 职场文书
2015年六一儿童节活动方案
2015/05/05 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang