//********************************************************
//-- 程序用途:Get或Post提交值的非法数据处理
//-- 备注: 本程序需要加载在所有程序处理前使用,以便自动进行
//-- 程序中使用的变量的替换
//********************************************************
class feifa{
//当以Get方式提交变量时用于连接变量的连接符
var $GetSplitStr="&&";
var $TempArray = array();
var $VariableArray = array();
//********************************************************
//-- 程序名称:Main()
//-- 程序用途:本类的默认运行方式
//********************************************************
function Main(){
//判断提交数据的方法
global $REQUEST_METHOD;
if("GET"==$REQUEST_METHOD){
$this->SubGetStrToArray();
}
if("POST"==$REQUEST_METHOD){
$this->SubPostStrToArray();
}
$this->GlobalVariable();
 
}
//********************************************************
//-- 程序名称:SubGetStrToArray()
//-- 程序用途:当变量以Get方式提交时所调用的方法
//********************************************************
function SubGetStrToArray(){
global $QUERY_STRING;
//返回所有$QUERY_STRING中包含getSpliStr的数组
$this->TempArray = explode($this->GetSplitStr,$QUERY_STRING);
for($i=0;$i<sizeof($this->TempArray);$i++){
$temp = explode('=',$this->TempArray[$i]);
$this->VariableArray[$i][0] = $temp[0];
$this->VariableArray[$i][1] = $this->StrReplace($temp[1]);
}
}
//********************************************************
//-- 程序名称:SubPostStrToArray()
//-- 程序用途:当变量以POST方式提交时所调用的方法
//********************************************************
function SubPostStrToArray(){
global $_POST;
reset($_POST);
for($i=0;$i<count($_POST);$i++){
$this->VariableArray[$i][0] = key($_POST);
$this->VariableArray[$i][1] = $this->StrReplace($_POST[key($_POST)]); 
next($_POST);
}
}
//********************************************************
//-- 程序名称:StrReplace()
//-- 程序用途:替换变量中的非法字符
//-- 传入参数:变量值
//********************************************************
function StrReplace($str){
$str = StripSlashes($str);
$str = str_replace(chr(92),'',$str);
$str = str_replace(chr(47),'',$str); 
$str = str_replace(chr(10).chr(13),"<br>",$str);
$str = str_replace('<',"&lt;",$str);
$str = str_replace('>',"&gt;",$str);
$str = str_replace(';',";",$str);
$str = str_replace('\"',"“",$str);
$str = str_replace("\'","‘",$str);
$str = str_replace(" "," ",$str);
$str = str_replace("/**/"," ",$str);
return trim($str);
}
//********************************************************
//-- 程序名称:GlobalVariable()
//-- 程序用途:声明变量为全局变量方便其他程序调用
//-- 传入参数:无
//********************************************************
function GlobalVariable(){
for($i=0;$i<sizeof($this->VariableArray);$i++){
global $$this->VariableArray[$i][0];
${$this->VariableArray[$i][0]} = $this->VariableArray[$i][1];
}
}
}谁能讲下除了main()的那四个函数呢,小妹看的不是很明白,跪谢!!

解决方案 »

  1.   

    SubGetStrToArray(),SubPostStrToArray()和GlobalVariable()中的for语句所表达的意思不是很明白,希望高手解答下,还有StrReplace()函数中那些语句的意思,谢谢了
      

  2.   

    SubGetStrToArray(),SubPostStrToArray()就是用一个二维数组VariableArray记录提交过来的各变量值。其中VariableArray[][0]=<变量名>,VariableArray[][1]=<对应变量名的值>;GlobalVariable()函数中的意思就是直接用提交过来的变量全局变量。
    如post过来的$_POST['name']='小余'
    SubGetStrToArray(),SubPostStrToArray()最终结果是:
    VariableArray[0][0]='name',VariableArray[0][1]='小余'
    GlobalVariable()函数的结果是$name='小余';
      

  3.   

    理解的差不多了,那么如果我要调用的话,是不是直接$feifa=new feifa;就可以了而main函数的默认运行的就不用调用了是吗?
      

  4.   

    main函数不会自动运行,你要自己调它,如果想自动运行,你再写个构造函数在构造函数里面调main方法即可.
      

  5.   

    function  __construct(){
        $this->main()
    }