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 闭包特性在实际应用中的问题
Oct 30 PHP
PHP中获取文件扩展名的N种方法小结
Feb 27 PHP
php抽奖小程序的实现代码
Jun 18 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
Apr 05 PHP
Linux中为php配置伪静态
Dec 17 PHP
php比较两个字符串长度的方法
Jul 13 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
Aug 27 PHP
PHP简单实现生成txt文件到指定目录的方法
Apr 25 PHP
既简单又安全的PHP验证码 附调用方法
Jun 02 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
Oct 17 PHP
PHP实现的随机红包算法示例
Aug 14 PHP
thinkphp5实现微信扫码支付
Dec 23 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
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
php split汉字
2009/06/05 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
Js中sort()方法的用法
2006/11/04 Javascript
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
Jquery中Event对象属性小结
2015/02/27 Javascript
基于Jquery插件实现跨域异步上传文件功能
2016/04/26 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
2016/12/03 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
vue 之 css module的使用方法
2018/12/04 Javascript
javascript随机变色实例代码
2019/10/15 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
浅谈vue中resetFields()使用注意事项
2020/08/12 Javascript
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
Python读取mp3中ID3信息的方法
2015/03/05 Python
python下MySQLdb用法实例分析
2015/06/08 Python
Python实现简单的代理服务器
2015/07/25 Python
Windows下搭建python开发环境详细步骤
2020/07/20 Python
Python 中pandas.read_excel详细介绍
2017/06/23 Python
python机器学习库常用汇总
2017/11/15 Python
CentOS 7 安装python3.7.1的方法及注意事项
2018/11/01 Python
Spark处理数据排序问题如何避免OOM
2020/05/21 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
eBay美国官网:eBay.com
2020/10/24 全球购物
经典大学生求职信范文
2014/01/06 职场文书
会计学生自我鉴定
2014/02/06 职场文书
摄影展策划方案
2014/06/02 职场文书
父亲婚礼答谢词
2015/01/04 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
类和原型的设计模式之复制与委托差异
2022/07/07 Javascript