这篇文章主要介绍了php输入数据统一类,实例分析了针对输入数据的各种转换技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了php输入数据统一类。分享给大家供大家参考。具体如下:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
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程序设计有所帮助。