php輸入數(shù)據(jù)統(tǒng)一類實(shí)例
更新時(shí)間:2015年02月23日 12:15:53 作者:php之路
這篇文章主要介紹了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ì)有所幫助。
相關(guān)文章
php獲得文件大小和文件創(chuàng)建時(shí)間的方法
這篇文章主要介紹了php獲得文件大小和文件創(chuàng)建時(shí)間的方法,涉及php中filesize及fileatime函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
php session_start()關(guān)于Cannot send session cache limiter - hea
在windows下編程,當(dāng)使用session_start()方法的時(shí)候,有時(shí)會(huì)報(bào) session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/inpublisher/php1.php:1)這樣的錯(cuò)誤2009-11-11
PHP中break及continue兩個(gè)流程控制指令區(qū)別分析
php中常用的for與foreach循環(huán)中,經(jīng)常遇到條件判斷或中止循環(huán)的情況。而處理方式主要用到break及continue兩個(gè)流程控制指令,現(xiàn)在說(shuō)明主要區(qū)別2011-04-04
同臺(tái)服務(wù)器使用緩存APC效率高于Memcached的演示代碼
之前看到有文章說(shuō)同臺(tái)服務(wù)器上APC的效率是Memcached的7倍,APC效率比Memcached高是肯定的,至于倒底快多少,我寫(xiě)了個(gè)小程序測(cè)試了下。2010-02-02
php時(shí)間計(jì)算相關(guān)問(wèn)題小結(jié)
這篇文章主要介紹了php時(shí)間計(jì)算相關(guān)問(wèn)題,結(jié)合實(shí)例形式總結(jié)分析了php關(guān)于時(shí)間與日期的常見(jiàn)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-05-05

