這篇文章主要介紹了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]);
- }{
- 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();
- $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程序設計有所幫助。
新聞熱點
疑難解答