php輸入數(shù)據(jù)統(tǒng)一類實(shí)例

字號(hào):


    這篇文章主要介紹了php輸入數(shù)據(jù)統(tǒng)一類,實(shí)例分析了針對(duì)輸入數(shù)據(jù)的各種轉(zhuǎn)換技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    本文實(shí)例講述了php輸入數(shù)據(jù)統(tǒng)一類。分享給大家供大家參考。具體如下:
    <?php
    class cls_request{
    private $getdata;//存儲(chǔ)get的數(shù)據(jù)
    private $postdata;//存儲(chǔ)post的數(shù)據(jù)
    private $requestdata;//存儲(chǔ)request的數(shù)據(jù)
    private $filedata;//存儲(chǔ)file的數(shù)據(jù)
    private $cookiedata;//存儲(chǔ)cooki
    static $_instance;//本類的實(shí)例
    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對(duì)象
    public static function get_instance(){
    if(!(self::$_instance instanceof self)){
    self::$_instance = new self();
    }
    return self::$_instance;
    }
    //獲取GET傳遞過(guò)來(lái)的數(shù)值變量
    public function get_num($key){
    if(!isset($this->getdata[$key])){
    return false;
    }
    return $this->to_num($this->getdata[$key]);
    }
    //獲取POST傳遞過(guò)來(lái)的數(shù)據(jù)變量
    public function post_num($key){
    if(!isset($this->postdata[$key])){
    return false;
    }
    return $this->to_num($this->postdata[$key]);
    }
    //獲取Request傳遞過(guò)來(lái)的數(shù)值變量
    public function request_num($key){
    if(!isset($this->requestdata[$key])){
    return false;
    }
    return $this->to_num($this->requestdata[$key]);
    }
    //獲取Cookie傳遞過(guò)來(lái)的數(shù)值變量
    public function cookie_num($key){
    if(!isset($this->cookiedata[$key])){
    return false;
    }
    return $this->to_num($this->cookiedata[$key]);
    }
    //獲取File傳遞過(guò)來(lái)的數(shù)值變量
    public function filedata($key){
    return $this->filedata[$key];//返回?cái)?shù)組
    }
    //獲取GET傳遞過(guò)來(lái)的字符串變量
    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傳遞過(guò)來(lái)的字符串變量
    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傳遞過(guò)來(lái)的字符串變量
    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傳遞過(guò)來(lái)的字符串變量
    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];
    }
    }
    //格式化數(shù)據(jù)
    private function format_data($data){
    $result = array();
    if(!is_array($data)){
    $data = array();
    }
    /*
    *list()表示用數(shù)組的數(shù)值給變量賦值。只用于數(shù)字索引的數(shù)組,
    *默認(rèn)從0位開(kāi)始,按順序下去
    *each()
    */
    while(list($key,$value) = each($data)){//不太明白
    //處理checkbox之類的數(shù)據(jù)
    if(is_array($value)){
    $result[$key]=$value;
    }else{//普通數(shù)據(jù)
    $result[$key] = trim($value);
    //刪除字符串兩端空白及其它預(yù)定義字符
    }
    }
    }
    //轉(zhuǎn)化數(shù)字
    private function to_num($num){
    if(is_numeric($num)){
    return intval($num);//將變量轉(zhuǎn)為整數(shù)
    }else{
    return false;
    }
    }
    //過(guò)換過(guò)濾字符串
    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);
    //把一些預(yù)定義字符轉(zhuǎn)化為html實(shí)體
    }
    return $data;
    }else{//普通字符串
    return htmlspecialchars($data,ENT_QUOTES);
    }
    }
    }
    ?>
    希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。