一个index.php
文件有许多包含文件,在其中一些包含文件中,有一些变量属于一个index.php
包含的文件。我只能将“包含代码”写入index.php
文件或插入“包含代码”所有单独的文件index.php
包含哪些文件?可能很难理解我写的内容,但这是我的文件夹和代码:
我的文件夹和文件在这里:
/
|
+ includes/
| |
| + initialize.php
| + functions.php
| + config.php
|
+ layouts/
| |
| + header.php
| + sidebar.php
| + content.php
| + footer.php
|
+ images/
| |
| + image1.jpg
|
+ index.php
我的 initialize.php 在这里:
//initialize.php
<?php
defined('DS') ? null : define('DS', '/');
defined('SITE_ROOT') ? null :
define('SITE_ROOT', '/webspace/httpdocs');
defined('LIB_PATH') ? null : define('LIB_PATH', SITE_ROOT.DS.'includes');
require_once(LIB_PATH.DS.'config.php');
require_once(LIB_PATH.DS.'functions.php');
?>
这是function.php
//function.php
<?php
function include_layout_template($template="") {
include(SITE_ROOT.DS.'layouts'.DS.$template);
}
function __autoload($class_name) {
$class_name = strtolower($class_name);
$path = LIB_PATH.DS."{$class_name}.php";
if(file_exists($path)) {
require_once($path);
} else {
die("The file {$class_name}.php could not be found.");
}
}
?>
这是 content.php 的一部分
//content.php
<img src="<?php echo SITE_ROOT.DS.'images'.DS.'image1.jpg' ?>" />
这是 index.php:
//index.php
<?php require_once "includes/initialize.php";?>
<?php include_layout_template("index_header.php"); ?>
<?php include_layout_template("sidebar.php"); ?>
<?php include_layout_template("index_content.php"); ?>
<?php include_layout_template("footer.php"); ?>
所以,我的问题是 content.php 中的代码:
<img src="<?php echo SITE_ROOT.DS.'images'.DS.'image1.jpg' ?>" />
不起作用。因为该文件无法识别SITE_ROOT
和DS
常量。所以,站点中没有图像。我知道,因为 initialize.php 不包括在内。function.php中没有包含,DS
但是可以SITE_ROOT
工作。虽然initialize.php包含在 index.php 中,但为什么 include 下的文件看不到这些SITE_ROOT
和DS
. 如果我插入到包含文件夹中的文件,那么index.php<?php require_once "includes/initialize.php";?>
中会有很多 initialize.php 。
通过使用<?php require_once "includes/initialize.php";?>
只有一个文件,我该如何解决这个问题?或者如何更好的设计。