####################################################################
#Project Name: uploadTest
#File Name:upload.php
#Author : Hu Jian Min
#Home Page: http://lanf.yeah.net
#E-mail:lanf@linuxaid.com.cn
#Time: 2001 . 9
####################################################################
$configureFile="myini.php";
//获取参数文件的特定行的值,其中操作ID即配置文件中的ID
function get_config($conf,$actionID="",$actionType=""){
//$conf 配置文件名,$actionID 操作ID ,$actionType 操作类型
//需要返回的参数
global $targetDir,$user,$maxLength,$fileType,$checkFile, $limitSite,$callback;
//如果没有操作ID,返回false
$actionID=trim($actionID);
if($actionID=="") return false;
$keylength=strlen($actionID);
//将文件 内容读入数组
$fileArray=file($conf);
//选定参数区域的标志
$canshuZoneId=0;
if($actionType=="upload"){
//假如是上传文件的话
while (list($key,$value) = each($fileArray)) {
$value=trim($value);
//判断参数区域,将参数提取限制在上传文件设置区
$Zone_temp=substr($value,0,1);
if($Zone_temp=="["){//开始一个参数区域
if(strstr($value, "up")){
echo "开始上传文件参数区:".$value." ";//请注释掉
$canshuZoneId=1;//选中了目标参数区域
}else{
if($canshuZoneId==0) {
continue;
}else{ 1
echo "到了另外一个区域:".$value." ";//请注释掉
break;
}
}
}else{
if($canshuZoneId==0) continue;
}//区域选择结束
$id_temp=substr($value,0,$keylength);
if($id_temp==$actionID){
//开始取参数
//基本思想是从后边开始取参数,然后从原串中去掉已经取走的参数,把原串两头空格 (主要是尾部)去掉后重复开始的动作。实际上,为了代码的简洁, 可以用一个数组来循环,但是那样参数的可读性就不强了。为了方便大家理解这种 考虑方法,暂时采用重复劳动方式^&^。
$callback=trim(strrchr($value, " "));
$value=trim(substr($value,0,strlen($value)-strlen($callback)));
$limitSite=trim(strrchr($value, " "));
$value=trim(substr($value,0,strlen($value)-strlen($limitSite)));
$checkFile=trim(strrchr($value, " "));
$value=trim(substr($value,0,strlen($value)-strlen($checkFile)));
$fileType=trim(strrchr($value, " "));
$value=trim(substr($value,0,strlen($value)-strlen($fileType)));
$maxLength=trim(strrchr($value, " "));
$value=trim(substr($value,0,strlen($value)-strlen($maxLength)));
$user=trim(strrchr($value, " "));
$value=trim(substr($value,0,strlen($value)-strlen($user)));
$targetDir=trim(strrchr($value, " "));
$value=trim(substr($value,0,strlen($value)-strlen($targetDir)));
return true;//成功取得所需参数信息,返回true
}else{
continue;
}
}//while结束,能运行到这一步说明没有找到匹配的ID
return false;
}elseif($actionType=="del"){
//如果是删除文件操作
while (list($key,$value) = each($fileArray)) {
$value=trim($value);
//判断参数区域,将参数提取限制在 删除 文件设置区
$Zone_temp=substr($value,0,1);
if($Zone_temp=="["){//开始一个参数区域
if(strstr($value, "del")){
$canshuZoneId=1;
}else{
if($canshuZoneId==0) {
continue;
}else{
break;
}
}
}else{
if($canshuZoneId==0) continue;
}//区域选择结束
$id_temp=substr($value,0,$keylength);
if($id_temp==$actionID){
//开始取参数
$user=trim(strrchr($value, " "));
return true;
}else{
continue;
}
}//while结束,能运行到这一步说明没有找到匹配的ID
return false;
}else{//既不是up,也不是del
return false;
};
return false;
}
//函数定义结束
#############测试函数功能部分###############
//定义一个显示参数取得情况并把参数变量重新归为""的函数
function get_global_info(){
global $targetDir,$user,$maxLength,$fileType, $checkFile,$limitSite,$callback;
echo " 显示全局变量情况:";
echo " targetDir : $targetDir";
echo " user : $user";
echo " maxLength : $maxLength";
echo " fileType : $fileType";
echo " checkFile : $checkFile";
echo " limitSite : $limitSite";
echo " callback : $callback";
echo " 正在初始化全局变量 ";
$targetDir="";$user="";$maxLength="";$fileType=""; $checkFile="";$limitSite="";$callback="";
}
//函数定义结束
echo " fa008 upload";
get_config($configureFile,"fa008","upload");
get_global_info();
echo " fa001 upload";
get_config($configureFile,"fa001","upload");
get_global_info();
echo " fa001 del";
get_config($configureFile,"fa001","del");
get_global_info();
############测试部分结束#############
?>
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一篇:用PHP和MySQL构建一个数据库驱动的网站(十)
下一篇:怎样才算够开放
【文章评论】
【收藏本文】
【推荐好友】
【打印本文】
【我要投稿】 【论坛讨论】
更多相关文章
|
|