這篇文章主要介紹了php輸入數(shù)據(jù)統(tǒng)一類,實例分析了針對輸入數(shù)據(jù)的各種轉換技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了php輸入數(shù)據(jù)統(tǒng)一類。分享給大家供大家參考。具體如下:
<?php
class cls_request{
private $getdata;//存儲get的數(shù)據(jù)
private $postdata;//存儲post的數(shù)據(jù)
private $requestdata;//存儲request的數(shù)據(jù)
private $filedata;//存儲file的數(shù)據(jù)
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傳遞過來的數(shù)值變量
public function get_num($key){
if(!isset($this->getdata[$key])){
return false;
}
return $this->to_num($this->getdata[$key]);
}
//獲取POST傳遞過來的數(shù)據(jù)變量
public function post_num($key){
if(!isset($this->postdata[$key])){
return false;
}
return $this->to_num($this->postdata[$key]);
}
//獲取Request傳遞過來的數(shù)值變量
public function request_num($key){
if(!isset($this->requestdata[$key])){
return false;
}
return $this->to_num($this->requestdata[$key]);
}
//獲取Cookie傳遞過來的數(shù)值變量
public function cookie_num($key){
if(!isset($this->cookiedata[$key])){
return false;
}
return $this->to_num($this->cookiedata[$key]);
}
//獲取File傳遞過來的數(shù)值變量
public function filedata($key){
return $this->filedata[$key];//返回數(shù)組
}
//獲取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];
}
}
//格式化數(shù)據(jù)
private function format_data($data){
$result = array();
if(!is_array($data)){
$data = array();
}
/*
*list()表示用數(shù)組的數(shù)值給變量賦值。只用于數(shù)字索引的數(shù)組,
*默認從0位開始,按順序下去
*each()
*/
while(list($key,$value) = each($data)){//不太明白
//處理checkbox之類的數(shù)據(jù)
if(is_array($value)){
$result[$key]=$value;
}else{//普通數(shù)據(jù)
$result[$key] = trim($value);
//刪除字符串兩端空白及其它預定義字符
}
}
}
//轉化數(shù)字
private function to_num($num){
if(is_numeric($num)){
return intval($num);//將變量轉為整數(shù)
}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程序設計有所幫助。
更多信息請查看IT技術專欄