龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php 输入数据统一入口类

时间:2014-08-12 16:38来源:网络整理 作者:网络 点击:
分享到:
输入数据统一入口类 [代码片段(267行)]
/**
 * 获取输入统一入口
 */
class cls_request
{
    private  $getdata;    //存储get的数据
    private  $postdata;   //存储post的数据
    private  $requestdata; //存储request的数据
    private  $filedata;   //存储file数据
    private  $cookiedata; //存储cookie
    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);
    }
    /**
     * 类的初始化方法
     *
     * @return cls_request 对象
     */
    public static function get_instance()
    {
        if(!(self::$_instance instanceof self))
        {
            self::$_instance = new self();
        }
        return self::$_instance;
    }

    /**
     * 获取GET传递过来的数值变量
     *
     * @param string $key
     * @return int or big int
     */
    public  function get_num($key)
    {
        if(!isset($this->getdata[$key]))
        {
            return false;
        }
        return $this->to_num($this->getdata[$key]);
    }

    /**
     * 获取POST传递过来的数值变量
     *
     * @param string $key
     * @return int or big int
     */
    public  function post_num($key)
    {
        if(!isset($this->postdata[$key]))
        {
            return false;
        }
        return $this->to_num($this->postdata[$key]);
    }

    /**
     * 获取REQUEST传递过来的数值变量
     *
     * @param string $key
     * @return int or big int
     */
    public function request_num($key)
    {
        if(!isset($this->requestdata[$key]))
        {
            return false;
        }
        return $this->to_num($this->requestdata[$key]);
    }

    /**
     * 获取Cookie传递过来的数值变量
     *
     * @param string $key
     * @return int or big int
     */
    public function cookie_num($key)
    {
        if(!isset($this->cookiedata[$key]))
        {
            return false;
        }
        return $this->to_num($this->cookiedata[$key]);
    }

    /**
     * 获取Files传递过来的变量值
     *
     * @param string $key
     * @return array
     */
    public function file_data($key)
    {
        return $this->filedata[$key];
    }

    /**
     * 获取GET传递过来的字符串变量
     *
     * @param string $key
     * @param boolen $isfilter 是否过滤
     * @return string
     */
    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传递过来的字符串变量
     *
     * @param string $key
     * @param boolen $isfilter 是否过滤
     * @return string
     */
    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传递过来的字符串变量
     *
     * @param string $key
     * @param boolen $isfilter 是否过滤
     * @return string
     */
    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传递过来的字符串变量
     *
     * @param string $key
     * @param boolen $isfilter 是否过滤
     * @return string
     */
    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];
        }
    }

    /**
     * 格式化数据,将数据转存
     *
     * @param array $data
     */
    private function format_data($data)
    {
        $result = array();
        if(!is_array($data))
        {
            $data = array();
        }
        while(list($key, $value) = each($data))
        {
            //处理checkbox之类的数据
            if(is_array($value))
            {
                 $result[$key]=$value;
            }
            else //普通数据
            {
                $result[$key] = trim($value);
            }
        }
        return $result;
    }
    /**
     * 转换为数字
     *
     * @param string $num
     * @return int or big int or false
     */
    private function to_num($num)
    {
        if(is_numeric($num))
        {
            return intval($num);
        }
        else
        {
            return false;
        }
    }
    /**
     * 转换过滤字符串
     *
     * @param string/array $data
     * @return string
     */
    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);
            }
            return $data;
        }
        else
        {
            return htmlspecialchars($data, ENT_QUOTES);
        }
    }
}
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接