准备基于dede做一个互联网应用型的网站。
准备入手修改dede了,阅读代码是一个学习的过程。dede的代码写得很有条理,注释也很全,值得学习。
多的不说了,分享一下dede和PHP的学习过程。今天先读index.php文件,逐行解释。

  1. <?php
  2. if(!is_file(dirname(__FILE__)."/include/config_base.php")){
  3. echo "<meta http-equiv=content-type content='text/html; charset=gb2312'>/r/n";
  4. echo "•如果你还没安装本程序,请运行<a href='install/index.php'> install/index.php 进入安装>> </a><br/><br/>";
  5. echo "  <a href='http://www.dedecms.com ' style='font-size:12px' target='_blank'>Power by DedeCms OX V5.1 GBK版  织梦内容管理系统</a>";
  6. exit();
  7. }

复制代码

is_file($filename) 函数,PHP中用来检测$filename是否有效。
dirname(__FILE__)函数,用来解释__FILE__中的路径,注意这个路径是不包含文件的路径。
整段的功能是:如果配置文件config_base.php无效,则运行安装程序。
PS:安装程序就不管了,与后边的逻辑没关系。

  1. require_once(dirname(__FILE__)."/include/config_base.php");
  2. require_once(dirname(__FILE__)."/include/inc_arcpart_view.php");

复制代码

如果配置 文件config_base.php有效,引用一下config_base.php和inc_arcpart_view.php两个文件,前者是个配置文 件,后者是显示界面文件。

  1. $dsql = new DedeSql(-100); //DedeSql是DEDE的数据库操作类,在include/pub_db_mysql.php文件中定义,这个文件在 inc_arcpart_view.php被引用。
  2. $row =$dsql->GetOne("Select * From #@__homepageset ");  //查询并返回一条数据,这个数据记录了默认首页的格式和地址
  3. [size=4]$dsql->Close(); //关闭数据库
  4. $row['templet'] = str_replace("{style}",$cfg_df_style,$row['templet']); //对当前得到的数据进行处理,str_replace函数完成字符串的替代功能,其三个形参依次为需要替代的字符串、替代字符串、需要查找的字符串
  5. $pv = new PartView(); //生成主界面,这个类是inc_arcpart_view.php中定义的。
  6. $pv->SetTemplet($cfg_basedir."/".$cfg_templets_dir."/".$row['templet']); //设定模板路径
  7. $pv->Display(); //展示
  8. $pv->Close(); //这里只是关闭了数据库,和c++中的close()不是一个概念
  9. //ookk
  10. ?>

DEDE源码分析与学习--index.php文件解读相关推荐

  1. php3源码分析,ThinkPHP3.1.3源码分析(一) 入口文件分析

    前言: 有几个月时间没有更新CSDN博客,持之以恒的徽章也灭了,接下来这个几个月会 逐渐更新 主流PHP框架的入门,源码分析,框架对比.加油! 一.示例代码 //文件路径 ThinkPHP/Think ...

  2. JVM源码分析之Attach机制实现完全解读

    本文来自: PerfMa技术社区 PerfMa(笨马网络)官网 Attach是什么 在讲这个之前,我们先来点大家都知道的东西,当我们感觉线程一直卡在某个地方,想知道卡在哪里,首先想到的是进行线程dum ...

  3. eventEmitter3源码分析与学习

    背景 事件监听在前端的开发过程中是一个很常见的情况.DOM上的事件监听方式,让我们看到了通过事件的方式来进行具体的业务逻辑的处理的便捷. 在具体的一些业务场景中,第三方的自定义事件能够在层级较多,函数 ...

  4. java+stream+源码分析_java8学习之Stream源码分析

    上一次已经将Collectors类中的各种系统收集器的源代码进行了完整的学习,而在之前咱们已经花了大量的篇幅对其Stream进行了详细的示例学习,如: 那接下来则通过源代码的角度来对Stream的运作 ...

  5. jQuery源码分析研究学习笔记-jQuery.clean()(七)

    jQuery.clean( elems, context, fragment, scripts ) 参数elems:数组,包含了待转换的HTML是代码 参数context:文档对象,该参数在方法jQu ...

  6. ecshop index.php,ecshop  源码分析01 (index.php)

    //ecshop 2.7.2 // define是php里定义常量用的.第一个参数是常量名,第二个是常量的值. // 它定义这个常量的作用是防止被引用文件的非法载入. // 根据某人的说法, 挂个鸟牌 ...

  7. Redis学习之intset整数集合源码分析

    1.整数集合:整数的集合,升序排序,无重复元素 2.整数集合intset是集合键的底层实现之一,当一个集合只包含整数值的元素,并且这个集合的元素数量不多时,redis会使用整数集合作为集合键的底层实现 ...

  8. Vuex 2.0 源码分析

    作者:滴滴公共前端团队 - 黄轶 大家好,我叫黄轶,来自滴滴公共前端团队,我们团队最近写了一本书 --<Vue.js 权威指南>,内容丰富,由浅入深.不过有一些同学反馈说缺少 Vuex 的 ...

  9. 02、Log4j(第三方日志框架,带源码分析)

    文章目录 前言 一.认识Log4j 1.1.介绍Log4j 1.2.第三方jar包 1.3.日志等级(6个) 二.Log4j的三大组件 Loggers Appenders Layouts 三.入门Lo ...

  10. 实际测试例子+源码分析的方式解剖MyBatis缓存的概念

    前言: 前方高能! 本文内容有点多,通过实际测试例子+源码分析的方式解剖MyBatis缓存的概念,对这方面有兴趣的小伙伴请继续看下去~ 欢迎工作一到五年的Java工程师朋友们加入Java架构开发:79 ...

最新文章

  1. 斐波那契数列(fabnacci)java实现
  2. shell的if判断比较
  3. 物体成瘾性_科技成瘾使我们不那么快乐。 那是一个市场机会。
  4. 研发人员为什么留不住
  5. 如何把一个float存到一个长度为4的char数组中?
  6. 5s突然一直信号无服务器,手机突然没信号了怎么回事?
  7. .h5是什么文件_PPT转H5丨再也不用担心忘带U盘怎么办了
  8. php 控制器方法,ThinkPhp3.2跨控制器调用方法
  9. 两年经验拿到蚂蚁/头条 Offer(面经分享)
  10. 在KVM虚拟机中使用spice系列之二(USB映射,SSL,密码,多客户端支持)
  11. linux进程与线程的通讯,实验进程与线程——Linux进程与线程通讯.ppt
  12. 让大家在30分钟内完成APPLEALC的声卡仿冒
  13. 任正非自称不如钱伯斯!钱伯斯究竟是何许人?
  14. 红帽子linux中断C程序运行,在Linux中Expect – 中断程序 – Ctrl C.
  15. 全球首家多语言智能客服上线,这家神秘AI公司有什么秘密武器?
  16. 卸载cuda,以及N卡驱动
  17. html+css实现一个会旋转且变大的静态照片墙
  18. 计算机系统 ahci模式,老电脑安装系统忘记开启AHCI模式,教你不重装系统开启AHCI解决方法(3)...
  19. JavaWEB快速入门之验证码及课堂项目【04】
  20. IDEA中MyBatis Migrations Maven plugin 使用总结

热门文章

  1. Python动态网页爬取
  2. java dojo,针对 Java 开发人员的 Dojo 概念
  3. 微信服务器系统,微信公众号服务器系统基础组件研发
  4. 数学知识——概率统计(11)小结:多个变量之间的关系描述
  5. 高级筛选英语或计算机分数大于85,WPS:如何在WPS中高级筛选分析学生成绩?
  6. OAuth2 oauth_client_details表字段的详细说明
  7. golang操作elasticsearch(oliver/elastic使用文档)
  8. 10天竟然只写了一行代码,谁的锅?
  9. CSS设置字间距、行间距、首行缩进
  10. vijos 1540 月亮之眼 并查集