最近在学习dedecms的源代码,看到了一个file函数的应用。在权限管理页面,权限页面内容全部由txt文件记录,用file函数读取txt内容,再将内容转换成html表现形式。是个不错的内容与逻辑层分离的解决方案。
 
file()-- 把整个文件读入一个数组中;
 
<?php
$start = 0;
$k = 0;
$gouplists = file(dirname(__FILE__).'/common/grouplist.txt');
foreach($gouplists as $line){
  $line = trim($line);
        if($line=="") continue;
        if(ereg("^>>",$line)){
                if($start>0) echo "                    </td></tr>\r\n";
                $start++;
                $lhead = "
                <tr>    
                <td height='25' colspan='2' bgcolor='#F9FAF3'>{$start}、".str_replace('>>','',$line)."</td></tr>
                <tr><td height='25' colspan='2'>
                ";    
                echo $lhead;
        }
        else if(ereg("^>",$line))
        {
                $ls = explode('>',$line);
                $tag = $ls[1];
                $tagname = str_replace('[br]','<br>',$ls[2]);
                if(!ereg('<br>', $tagname) )    
      $tagname .= "<font color='#888888'>($tag)</font>";
                else    
      $tagname = str_replace('<br>', "<font color='#888888'>($tag)</font><br />", $tagname);
                echo "                      <input name='purviews[]' type='checkbox' class='np' id='purviews$k' value='$tag'".(getLimit($Mssql,$tag,$ss)?" checked":"").">$tagname\r\n";
                $k++;
        }
}
$start++;
?>
 
php file函数在内容与底层逻辑分离的应用_逻辑
 
txt文件的存放格式:
 
>>我的工作
>11>业务组工作内容添加
>12>业务组工作内容修改
>13>业务组工作内容删除
>14>业务组工作内容查看
>15>业务组工作内容审核
>16>业务组工作内容失效
>>项目
>21>项目人员分工
>22>项目人员日程安排
>23>项目查看
>>业务分解表
>31>年度目标分解表创建
>32>年度目标分解表修改
>33>年度目标分解表提交
>34>年度目标分解表审批
>35>年度目标分解表退回
>36>年度目标分解表查看[br]
>41>未来三月目标分解表创建
>42>未来三月目标分解表修改
>43>未来三月目标分解表提交
>44>未来三月目标分解表审批
>45>未来三月目标分解表退回
>46>未来三月目标分解表查看[br]
>51>项目成本分析表创建
>52>项目成本分析表修改
>53>项目成本分析表提交
>54>项目成本分析表审批
>55>项目成本分析表退回
>56>项目成本分析表查看
>57>项目成本分析表删除[br]
>>系统设置
>61>权限修改