php输入数据统一类实例
本文实例讲述了php输入数据统一类。分享给大家供大家参考。具体如下:
<?php
classcls_request{
private$getdata;//存储get的数据
private$postdata;//存储post的数据
private$requestdata;//存储request的数据
private$filedata;//存储file的数据
private$cookiedata;//存储cooki
static$_instance;//本类的实例
privatefunction__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对象
publicstaticfunctionget_instance(){
if(!(self::$_instanceinstanceofself)){
self::$_instance=newself();
}
returnself::$_instance;
}
//获取GET传递过来的数值变量
publicfunctionget_num($key){
if(!isset($this->getdata[$key])){
returnfalse;
}
return$this->to_num($this->getdata[$key]);
}
//获取POST传递过来的数据变量
publicfunctionpost_num($key){
if(!isset($this->postdata[$key])){
returnfalse;
}
return$this->to_num($this->postdata[$key]);
}
//获取Request传递过来的数值变量
publicfunctionrequest_num($key){
if(!isset($this->requestdata[$key])){
returnfalse;
}
return$this->to_num($this->requestdata[$key]);
}
//获取Cookie传递过来的数值变量
publicfunctioncookie_num($key){
if(!isset($this->cookiedata[$key])){
returnfalse;
}
return$this->to_num($this->cookiedata[$key]);
}
//获取File传递过来的数值变量
publicfunctionfiledata($key){
return$this->filedata[$key];//返回数组
}
//获取GET传递过来的字符串变量
publicfunctionget_string($key,$isfilter=true){
if(!isset($this->getdata[$key])){
returnfalse;
}
if($isfilter){
return$this->filter_string($this->getdata[$key]);
}else{
return$this->getdata[$key];
}
}
//获取POST传递过来的字符串变量
publicfunctionpost_string($key,$isfilter=true){
if(!isset($this->postdata[$key])){
returnfalse;
}
if($isfilter){
return$this->filter_string($this->postdata[$key]);
}else{
return$this->postdata[$key];
}
}
//获取Request传递过来的字符串变量
publicfunctionrequest_string($key,$isfilter=true){
if(!isset($this->requestdata[$key])){
returnfalse;
}
if($isfilter){
return$this->filter_string($this->requestdata[$key]);
}else{
return$this->requestdata[$key];
}
}
//获取Cookie传递过来的字符串变量
publicfunctioncookie_string($key,$isfilter=true){
if(!isset($this->cookiedata[$key])){
returnfalse;
}
if($isfilter){
return$this->filter_string($this->cookiedata[$key]);
}else{
return$this->cookiedata[$key];
}
}
//格式化数据
privatefunctionformat_data($data){
$result=array();
if(!is_array($data)){
$data=array();
}
/*
*list()表示用数组的数值给变量赋值。只用于数字索引的数组,
*默认从0位开始,按顺序下去
*each()
*/
while(list($key,$value)=each($data)){//不太明白
//处理checkbox之类的数据
if(is_array($value)){
$result[$key]=$value;
}else{//普通数据
$result[$key]=trim($value);
//删除字符串两端空白及其它预定义字符
}
}
}
//转化数字
privatefunctionto_num($num){
if(is_numeric($num)){
returnintval($num);//将变量转为整数
}else{
returnfalse;
}
}
//过换过滤字符串
privatefunctionfilter_string($data){
if($data===null){
returnfalse;
}
if(is_array($data)){
foreach($dataas$k=>$v){
$data[$k]=htmlspecialchars($v,ENT_QUOTES);
//把一些预定义字符转化为html实体
}
return$data;
}else{//普通字符串
returnhtmlspecialchars($data,ENT_QUOTES);
}
}
}
?>
希望本文所述对大家的php程序设计有所帮助。