www.gusucode.com > 贴心猫(TiexinCat)通用CMS建站系统 v4.3php源码程序 > 贴心猫(TiexinCat)通用CMS建站系统 v4.3/TiexinCat_v3.2.2016.0625/TiexinCat_v3.2.2016.0625/code/core/blib/basReq.php
<?php // Request,表单,Url参数处理类 class basReq{ /* ***************************************************************************** *** system系统常用函数 - get,xxx前缀 - by Peace(XieYS) 2012-02-18 ***************************************************************************** */ // Request Vars // Demo : extract(basReq::sysVars()); static function sysVars(){ $sy_sids = glbConfig::read('sysids','sy'); $re = array(); foreach($sy_sids['GET'] as $k){ if(isset($_POST[$k])){ $val = $_POST[$k]; }elseif(isset($_GET[$k])){ $val = $_GET[$k]; }else{ $val = ''; } $re[$k] = $val; } foreach(array('Title','Key','N') as $k0){ $items = $sy_sids[$k0]; foreach($items as $k){ $def = $k0=='N' ? 0 : ($k0=='Key' ? 24 : 255); $val = self::val($k, '', $k0, $def); $re[$k] = $val; } } //print_r($re); return $re; } static function val($key,$def='',$type='Title',$len=255){ if(isset($_POST[$key])){ $val = $_POST[$key]; }elseif(isset($_GET[$key])){ $val = $_GET[$key]; }else{ $val = ''; } return is_array($val) ? $val : self::fmt($val,$def,$type,$len); } static function arr($fix,$type='Title',$len=255){ //echo "<br>fix:"; print_r($fix); if(isset($_POST[$fix])){ $val = $_POST[$fix]; }elseif(isset($_GET[$fix])){ $val = $_GET[$fix]; }else{ $val = array(); } if($type && !empty($val)){ foreach($val as $k=>$v) { $val[$k] = is_array($v) ? $v : self::fmt($v,'',$type,$len); } } return $val; } static function ark($fix,$key,$type='Title',$len=255){ if(isset($_POST[$fix][$key])){ $val = $_POST[$fix][$key]; }elseif(isset($_GET[$fix][$key])){ $val = $_GET[$fix][$key]; }else{ $val = ''; } return is_array($val) ? $val : self::fmt($val,'',$type,$len); } // type=D,N,Key,Title,Html static function fmt($data,$def='',$type='Title',$len=255){ if($type=='N'){ if(is_numeric($data)) return $data; else return $def; }elseif($type=='D'){ if(strtotime($data)) return $data; else return $def; } switch ($type){ case "Key" : case "Title" : $Tmp = basStr::cutCount($data,$len); $Tmp = $type=='Title' ? basStr::filTitle($Tmp) : basStr::filKey($Tmp,'-._@'); $Tmp = strlen($Tmp)==0 ? $def : $Tmp; return $Tmp; break; case "Safe4" : $Tmp = basStr::filSafe4($data); $Tmp = strlen($Tmp)==0 ? $def : $Tmp; return $Tmp; break; default: // Html $Tmp = basStr::filHtml($data); $Tmp = strlen($Tmp)==0 ? $def : $Tmp; //$Tmp = self::in($Tmp); return $Tmp; break; //处理 '"\ } } // *** fmtNum static function fmtNum($num,$dec=2,$kdot=''){ $num = number_format($num,$dec); if(empty($kdot)) $num = str_replace(',','',$num); return $num; } // *** 获取Checkbox安全数据 static function getCBox($key,$re='s'){ $a = self::arr($key); if($re=='s'){ // 返回字符串:array -> string $s = ''; foreach($a as $v) $s .= (empty($s) ? '' : ',').$v.','; return $s; }else{ // return array return $a; } } static function in($data){ if(is_string($data)){ //$data=trim(htmlspecialchars($data));//防止被挂马,跨站攻击 $data = addslashes($data);//防止sql注入 return $data; }else if(is_array($data)){ //如果是数组采用递归过滤 foreach($data as $key=>$value){ $data[$key]=self::in($value); } return $data; }else{ return $data; } } static function out($data){ if(is_string($data)){ return $data = stripslashes($data); }else if(is_array($data)){ //如果是数组采用递归过滤 foreach($data as $key=>$value){ $data[$key]=self::out($value); } return $data; }else { return $data; } } //获取REQUEST_URI //re:第几个参数,-2:array;-1:full; static function getUri($re=-1,$ura='',$skip=''){ if(!$ura){ if(isset($_SERVER['REQUEST_URI'])){ $uri = $_SERVER['REQUEST_URI']; if(strpos($uri,'?')>0){ $pos = strpos($uri,'?'); $ura = array(substr($uri,0,$pos),substr($uri,$pos)); }else{ $ura = array($uri,''); } }else{ $ura = array($_SERVER['PHP_SELF']); if(isset($_SERVER['argv'])){ $ura[] = $_SERVER['argv'][0]; }else{ $ura[] = $_SERVER['QUERY_STRING']; } } }elseif(is_string($ura)){ $ura = explode('?',"$ura"); } if(!strstr($ura[1],'?')) $ura[1] = "?$ura[1]"; if($ura[1]&&$skip){ //《"&<>》HTML《:/?=&#%》URL《\/*?"<>|》FILE $ura[1] = preg_replace("/[\?|\&]($skip)=[^\f\n\r\t\v\&\#]{0,80}/i",'',$ura[1]); } //print_r($ura); if($re==-2) return $ura; elseif($re==-1) return implode($ura); elseif(isset($ura[$re])) return $ura[$re]; //'http://'.$_SERVER['HTTP_HOST']. else return ''; } static function getURep($url,$key,$val=''){ $url || $url = $_SERVER["REQUEST_URI"]; $para = empty($val) ? '' : "$key=$val"; if(strpos($url,"$key=")){ $url = preg_replace("/$key=([^\f\n\r\t\v\&\#]{0,80})/i",$para,$url); }else{ $url = strpos($url,'?') ? $url : "$url?"; $url .= "&$para"; $url = str_replace(array("?&","&&"),array("?","&"),$url); } return $url; } // $str = addslashes(preg_replace("/(=\s*['\"]?)($re)(.+?['\" >])/ies",'"$1"."<!cmsurl />"."$3"',stripslashes($str))); }