dedecms源码分析:(1)index.php
1 <?php 2 //file_exists()函数检查文件或者目录是否存在,dirname(__FILE__)当前文件所在目录名。 3 if(!file_exists(dirname(__FILE__).'/data/common.inc.php')) 4 { 5 header('Location:install/index.php'); 6 exit(); 7 } 8 //自动生成HTML版 9 //判断是否有GET['upcache']没有就跳转到301的静态页面去,有就生成静态页。 10 if(isset($_GET['upcache'])) 11 { 12 //引入include的配置文件,注意这个是include文件夹的。common.inc.php应该是一个配置 13 //文件但是作用尚未分析,会引入一个常量define('DEDEINC', ereg_replace("[/\\]{1,}", '/', dirname(__FILE__) ) ); 14 require_once (dirname(__FILE__) . "/include/common.inc.php"); 15 //引入include中arc.partview.calss.php这个文件,从文件名上看应该是模板的类 16 require_once DEDEINC."/arc.partview.class.php"; 17 //定义一个全局变量arclistEnv 18 $GLOBALS['_arclistEnv'] = 'index'; 19 //调用了$dsql对象的GetOne方法,预计这个已经被实例化的对象是来至,上面两个被引入的方法之一。 20 //另外这个表里面的 #@是前缀,应该是被经过了替换 21 $row = $dsql->GetOne("Select * From `#@__homepageset`"); 22 //MfTemplet这个函数对$row['templet']进行了什么操作未知。 23 $row['templet'] = MfTemplet($row['templet']); 24 //实例了一个PartView类 应该来自文件partview.class.php. 25 $pv = new PartView(); 26 $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']); 27 $pv->SaveToHtml(dirname(__FILE__).'/index.html'); 28 //引入文件 29 include(dirname(__FILE__).'/index.html'); 30 //结束 31 exit(); 32 } 33 else 34 { 35 header('HTTP/1.1 301 Moved Permanently'); 36 header('Location:index.html'); 37 } 38 /* 39 文件树分析 40 |index.php //总入口文件 41 |data //未知文件夹(未分析) 42 | |common.inc.php //记录数据库连接信息 43 |install //程序安装目录 安装后删除(未分析) 44 | |index.php //安装程序入口(未分析) 45 |include //未知文件夹(未分析) 46 | |common.inc.php //未知文件(未分析) 47 | |arc.partview.class.php //未知文件(未分析) 48 */ 49 ?>