php输入数据统一类实例

5年以前  |  阅读数:835 次  |  编程语言:PHP 

本文实例讲述了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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例