這篇文章主要介紹了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ì)有所幫助。
更多信息請(qǐng)查看IT技術(shù)專欄