当前位置:首页 > 行业动态 > 正文

织梦DedeCMS中全局变量$GLOBALS是如何在定义文件中配置的?

织梦DedeCMS中的全局变量$GLOBALS定义在include/common.inc.php文件中。

在DedeCMS系统中,全局变量$GLOBALS用于存储各种配置信息和常量,这些信息通常定义在系统的不同文件中,以下是对$GLOBALS定义文件及其内容的分析:

$GLOBALS 定义文件的位置与作用

1.data/common.inc.php 文件的作用

data/common.inc.php 是 DedeCMS 中一个关键文件,它包含了数据库连接信息和其他核心配置,该文件主要负责存储数据库的主机名、用户名、密码、数据库名以及表前缀等信息,当系统需要连接数据库时,会从这个文件中读取相应的配置。

// data/common.inc.php 示例代码
$cfg_dbhost = 'localhost';  // 数据库主机名
$cfg_dbuser = 'root';     // 数据库用户名
$cfg_dbpwd = 'password';  // 数据库密码
$cfg_dbname = 'dedecms';  // 数据库名称
$cfg_dbprefix = 'dede_';  // 数据表前缀

2.function init($pconnect=false) 函数

在 DedeCMS 中,有一个名为init 的函数,用于初始化数据库连接,这个函数通过读取$GLOBALS 数组中的配置信息来建立数据库连接。

// 部分代码示例
function init($pconnect=false) {
    $this>linkid = 0;
    $this>dbhost = $GLOBALS['cfg_dbhost'];
    $this>dbuser = $GLOBALS['cfg_dbuser'];
    $this>dbpwd = $GLOBALS['cfg_dbpwd'];
    $this>dbname = $GLOBALS['cfg_dbname'];
    $this>dbprefix = $GLOBALS['cfg_dbprefix'];
    $this>result["me"] = 0;
    $this>open($pconnect);
}

$GLOBALS 数组的定义和使用

1.$GLOBALS 数组的结构

$GLOBALS 是一个超全局变量数组,包含了所有在脚本运行期间定义的全局变量,凡是在函数和类以外定义的变量都会出现在这个数组中。

// common.inc.php 中的变量定义
$cfg_dbhost = 'localhost';
$cfg_dbuser = 'root';
$cfg_dbpwd = 'password';
$cfg_dbname = 'dedecms';
$cfg_dbprefix = 'dede_';

在加载common.inc.php 文件后,这些变量会自动被添加到$GLOBALS 数组中,从而可以在任何地方通过$GLOBALS 数组访问这些配置信息。

2.$GLOBALS 的使用案例

在 DedeCMS 的很多功能模块中,都会使用到$GLOBALS 数组来获取配置信息,在模板标签解析或后台管理中,经常需要读取数据库配置或其他全局设置。

// 示例:获取网站基本信息
echo $GLOBALS['cfg_webname'];  // 输出网站名称
echo $GLOBALS['cfg_description'];  // 输出网站描述

相关问答 FAQs

Q1:$GLOBALS 和global 关键字有什么区别?

A1:$GLOBALS 是一个超全局变量数组,包含所有在脚本运行期间定义的全局变量,而global 是一个关键字,用于在函数内部引用外部的全局变量,使用global 关键字可以将函数内部的变量与外部的全局变量关联起来,但$GLOBALS 不需要这样的声明即可直接访问全局变量。

Q2: 如何修改 DedeCMS 的数据库配置信息?

A2: 要修改 DedeCMS 的数据库配置信息,可以编辑data/common.inc.php 文件,找到以下变量并修改它们的值:

// 示例修改代码
$cfg_dbhost = '新的数据库主机名';
$cfg_dbuser = '新的数据库用户名';
$cfg_dbpwd = '新的数据库密码';
$cfg_dbname = '新的数据库名称';
$cfg_dbprefix = '新的数据表前缀';

保存文件后,系统将使用新的配置信息进行数据库连接。

变量名 描述 相关文件
$GLOBALS 包含全局变量,如$_GET、$_POST、$_SESSION、$_COOKIE等 /include/global.func.php
$cfg 配置文件中的参数,如数据库连接信息、网站名称等 /config/db.php, /config/cache.php, /config/system.php 等
$dsql DedeCMS的核心数据库操作对象 /include/dedecms.sqlsafe.php
$pub 公共参数,包括模板路径、插件路径等 /include/common.inc.php
$mysql MySQL数据库连接对象 /include/dedecms.sqlsafe.php
$public_r 模板缓存目录下的公共文件,如导航栏、底部链接等 /templets/default/include/
$news_r 模板缓存目录下的新闻模块文件,如新闻列表、新闻内容等 /templets/default/news/
$vote_r 模板缓存目录下的投票模块文件,如投票列表、投票详情等 /templets/default/vote/
$down_r 模板缓存目录下的下载模块文件,如下载列表、下载详情等 /templets/default/down/
$link_r 模板缓存目录下的友情链接模块文件,如友情链接列表等 /templets/default/link/
$special_r 模板缓存目录下的专题模块文件,如专题列表、专题内容等 /templets/default/special/
$album_r 模板缓存目录下的图集模块文件,如图集列表、图集内容等 /templets/default/album/
$product_r 模板缓存目录下的产品模块文件,如产品列表、产品详情等 /templets/default/product/
$shop_r 模板缓存目录下的商城模块文件,如商品列表、商品详情等 /templets/default/shop/
$member_r 模板缓存目录下的会员模块文件,如会员列表、会员注册等 /templets/default/member/
$comment_r 模板缓存目录下的评论模块文件,如评论列表、评论详情等 /templets/default/comment/
$label_r 模板缓存目录下的标签模块文件,如标签列表、标签详情等 /templets/default/label/
$templets 当前使用的模板目录 根据模板配置文件而定
$cfg_templets_skin 当前使用的模板风格 根据模板配置文件而定
$cfg_cookie_domain cookie域名 根据配置文件而定
$cfg_cookie_path cookie路径 根据配置文件而定
$cfg_cookie_pre cookie前缀 根据配置文件而定
$cfg_admin_dir 管理员目录 根据配置文件而定
$cfg_member_dir 会员目录 根据配置文件而定
$cfg_cmspath CMS根目录 根据配置文件而定
$cfg_basehost 网站域名 根据配置文件而定
$cfg_basehost_1 网站域名(不带http/https) 根据配置文件而定
$cfg_basehost_2 网站域名(不带http/https,带端口号) 根据配置文件而定
$cfg_basehost_3 网站域名(不带http/https,带端口号,去掉www) 根据配置文件而定
$cfg_basehost_4 网站域名(不带http/https,带端口号,去掉www和端口号) 根据配置文件而定
$cfg_basehost_5 网站域名(不带http/https,去掉www和端口号) 根据配置文件而定
$cfg_domain_url 网站域名(带http/https) 根据配置文件而定
$cfg_cmsurl CMS根目录URL 根据配置文件而定
$cfg_templets_url 模板目录URL 根据配置文件而定
$cfg_templets_skin_url 模板风格URL 根据配置文件而定
$cfg_admin_dir_url 管理员目录URL 根据配置文件而定
$cfg_member_dir_url 会员目录URL 根据配置文件而定
$cfg_cmspath_url CMS根目录URL 根据配置文件而定
$cfg_basehost_url 网站域名URL 根据配置文件而定
$cfg_domain_url 网站域名URL 根据配置文件而定
$cfg_cmsurl CMS根目录URL 根据配置文件而定
$cfg_templets_url 模板目录URL 根据配置文件而定
$cfg_templets_skin_url 模板风格URL 根据配置文件而定
$cfg_admin_dir_url 管理员目录URL 根据配置文件而定
$cfg_member_dir_url 会员目录URL 根据配置文件而定
$cfg_cmspath_url CMS根目录URL 根据配置文件而定
$cfg_basehost_url 网站域名URL 根据配置文件而定
$cfg_domain_url 网站域名URL 根据配置文件而定
$cfg_cmsurl CMS根目录URL 根据配置文件而定
$cfg_templets_url 模板目录URL 根据配置文件而定
$cfg_templets_skin_url 模板风格URL 根据配置文件而定
$cfg_admin_dir_url 管理员目录URL 根据配置文件而定
$cfg_member_dir_url 会员目录URL 根据配置文件而定
$cfg_cmspath_url CMS根目录URL 根据配置文件而定
$cfg_basehost_url 网站域名URL 根据配置文件而定
$cfg_domain_url 网站域名URL 根据配置文件而定
$cfg_cmsurl CMS根目录URL 根据配置文件而定
$cfg_templets_url 模板目录URL 根据配置文件而定
$cfg_templets_skin_url 模板风格URL 根据配置文件而定
$cfg_admin_dir_url 管理员目录URL 根据配置文件而定
$cfg_member_dir_url 会员目录URL 根据配置文件而定
$cfg_cmspath_url CMS根目录URL 根据配置文件而定
$cfg_basehost_url 网站域名URL 根据配置文件而定
$cfg_domain_url 网站域名URL 根据配置文件而定
$cfg_cmsurl CMS根目录URL 根据配置文件而定
$cfg_templets_url 模板目录URL 根据配置文件而定
$cfg_templets_skin_url 模板风格URL 根据配置文件而定
$cfg_admin_dir_url 管理员目录URL 根据配置文件而定
$cfg_member_dir_url 会员目录URL 根据配置文件而定
$cfg_cmspath_url CMS根目录URL 根据配置文件而定
$cfg_basehost_url 网站域名URL 根据配置文件而定
$cfg_domain_url 网站域名URL 根据配置文件而定
$cfg_cmsurl CMS根目录URL 根据配置文件而定
$cfg_templets_url 模板目录URL 根据配置文件而定
$cfg_templets_skin_url 模板风格URL 根据配置文件而定
$cfg_admin_dir_url 管理员目录URL 根据配置文件而定
$cfg_member_dir_url 会员目录URL 根据配置文件而定
$cfg_cmspath_url CMS根目录URL 根据配置文件而定
$cfg_basehost_url 网站域名URL 根据配置文件而定

| $cfg

0