标签:
刚学习php,感觉织梦cms很好,就像学习一下,记录下自己的学习心得!
我是新手,php不是了解,错误不当之处,欢迎批评指正,不胜感激!
今天先来分析织梦的入口文件index.php,先贴代码,逐行分析
1 <?php 2 /** 3 * @version $Id: index.php 1 9:23 2010-11-11 tianya $ 4 * @package DedeCMS.Site 5 * @copyright Copyright (c) 2007 - 2010, DesDev, Inc. 6 * @license http://help.dedecms.com/usersguide/license.html 7 * @link http://www.dedecms.com 8 */
/**
*第一句if语句先来看看data下的common.inc.php文件是否存在,不存在则跳转到dede的
*安装页面,停止执行下面的代码
*common.inc.php文件应该是dede安装时生成数据库配置文件,内容也就是数据库连接信息
*包括主机名($cfg_dbhost),数据库名($cfg_dbname),用户名($cfg_dbuser),用
*户密码($cfg_dbpwd),表前缀设置($cfg_dbprefix)以及数据库使用编码格式($cfg_db_language)
*/
9 if(!file_exists(dirname(__FILE__).‘/data/common.inc.php‘)) 10 { 11 header(‘Location:install/index.php‘); 12 exit(); 13 }
//isset($_GET[‘upcache‘]是get请求吧,不知道具体作用,希望知道告诉俺一下
//!file_exists(‘index.html‘)判断index.html文件是否存在
//总的意思大概就是如果是请求更新页面或者index.html文件不存在的话就重新生成一下 14 //自动生成HTML版 15 if(isset($_GET[‘upcache‘]) || !file_exists(‘index.html‘)) 16 {
//引入include下的common.inc.php文件,里面定义了系统的许多关于目录的常量
//做了安全检查之类的工作,模板目录的处理工作,引入了数据库处理类等等 17 require_once (dirname(__FILE__) . "/include/common.inc.php");
//引入了include下的arc.partview.class.php类文件,设置要解析的模板文件以及调用解析模板和
//保存html文件的方法
//DEDEINC就是include下的common.inc.php文件中定义的一个常量,就是指include这个目录 18 require_once DEDEINC."/arc.partview.class.php";
//给全局变量_arclistEnv赋值为index 19 $GLOBALS[‘_arclistEnv‘] = ‘index‘;
//从#@__homepageset表中获取一条记录
//#@__会替换成设置的表前缀
20 $row = $dsql->GetOne("Select * From `#@__homepageset`");
///**
* 模板目录规则
*
* @param string $tmpdir 模板目录
* @return string
*
* function MfTemplet($tmpdir)
* {
* $tmpdir = str_replace("{style}", $GLOBALS[‘cfg_df_style‘], $tmpdir);
* $tmpdir = preg_replace("/\/{1,}/", "/", $tmpdir);
* return $tmpdir;
* }
*从函数大概看出应该是把从表中的templet的内容{style}和/替换成实际的路径,在保存在$row[‘templet‘]里
*/ 21 $row[‘templet‘] = MfTemplet($row[‘templet‘]);
//实例化PartView类 22 $pv = new PartView();
//调用SetTemplet加载模板,内部调用解析模板方法 23 $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row[‘templet‘]);
//查看这个$row[‘showmod‘]存在不,不存在就创建并赋值为0 24 $row[‘showmod‘] = isset($row[‘showmod‘])? $row[‘showmod‘] : 0;
//$row[‘showmod‘]如果等于1就保存成index.html文件并加载index.html,否则就直接输出解析的模板字符串 25 if ($row[‘showmod‘] == 1) 26 { 27 $pv->SaveToHtml(dirname(__FILE__).‘/index.html‘); 28 include(dirname(__FILE__).‘/index.html‘); 29 exit(); 30 } else { 31 $pv->Display();//直接输出解析的模板字符串 32 exit(); 33 } 34 } 35 else 36 {
//跳转到index.html 37 header(‘HTTP/1.1 301 Moved Permanently‘); 38 header(‘Location:index.html‘); 39 } 40 ?>
好多还不知道,郁闷!。。。。
标签:
原文地址:http://www.cnblogs.com/yeyulantu-yingkesong/p/5467561.html