以header.php头文件为例剖析一套CMS文件结构
1、首先,我已将网站文件htdocs下的所有文件都已下载到本地,便于随时查看和更改。简介中配图是该网站的头部,找到文件中的_header.php文件。
2、用notepad++编辑器打开_header.php文件如下。如图即头部文件的一部分。很显然箭头所指的几个地方调用了一个函数,实现某些功能,这邗锒凳审个名为acbyclassid的函数一般放置在func.php这个文件中,我们一起去找一找。结果没有。
3、一般_header.php文件会被所有页面请求调用require,我们去首页index.php看看这个页面调用了什么文件。如下,_inc.php文件。
4、这样我们再去看_inc.php文件,找找看有没有acbyclassid函数在,果不其然在这里。
5、下面研究一下这个函数干嘛用的。function acbyclassid($a,$b){ $data="";(定义一个字符串变量赋值为空) $classid=$镟搞赃呓GLOBALS['db']->v("my_cata|classid|classid='$b'");(经研究这是一个全局类,v()函数的意思是对双引号中的内容按'|'进行切割,my_cata是数据库表名,classid是栏目的id字段名,这个语句的意思是定义一个字符串并将v()函数切割后的classid值返回给classid这个变量) if($GLOBALS['cfg_html'])(这个是判断一个存储.html文件布尔值的全局变量) { $data="$a-$classid.html";(如果是则将传递来的a值替换掉,classid值也替换为上面的赋值) } else { $data="$a.php?classid=$classid";(如果判断非.html文件则采用这种动态链接形式) } $url=$GLOBALS['db']->v("my_cata|url|classid='$b'")."";(这句的意思是将my_cata里的url赋值给$url变量) if($url!="")(判断是否为空) { $data=$url;(赋值给$data变量) } echo $data;(输出$data值)}这样就解释清楚了,实际上这个函数的作用就是判断后形成一个可用的url链接的。