0

我使用以下方案来包含 PHP 文件:

require($_SERVER['DOCUMENT_ROOT'] . "Path/To/My/Website/Path/To/My/File.php");

我想保存

$_SERVER['DOCUMENT_ROOT'] . 'Path/To/My/Website'

在某个变量中,比如说$my_website,然后写:

require("$my_website/Path/To/My/File.php");

这样,如果我决定更改我网站的路径,我只需要在我的代码中的一个地方进行修改。

一些 PHP 文件可能会被多次包含在不同的目录级别。例如:

$_SERVER['DOCUMENT_ROOT']
                         Path
                             To
                               My
                                 Website
                                        Dir1
                                            a.php
                                        Dir2
                                            b.php that includes a.php
                                        Dir3
                                            Dir4
                                                c.php that includes a.php

但是,我想不出该怎么做。

请建议。

4

3 回答 3

1

我可以想到两种方法:

  1. 创建一个包含在所有其他文件中的通用文件,用于设置您的变量$my_website
  2. 将您的网站路径添加到您的 include_path 中,这样您就不必使用您的网站路径来包含您的文件 ( require "Path/To/My/File.php";)
于 2010-10-20T10:53:07.627 回答
1

使用包含路径- 将使您的生活更简单(您甚至可以从 .htaccess 控制它)。

于 2010-10-20T11:00:06.580 回答
0

我在我的config.php文件中为 BASE_PATH 和 BASE_URI 设置了常量,该文件与脚本位于同一文件夹中,并包含在每个脚本 ( require('config.php')) 中:

define('BASE_PATH', '/filesystem/path/to/application');
define('BASE_URI', '/uri/home');

然后你可以使用:

require(BASE_PATH . '/file.php');

另一个提示 - 如果您有单独的开发和实时站点,您可以将这些定义放在一个开关中:

$mode = 'dev';
switch($mode){
    case 'dev':
        define('BASE_PATH', '/filesystem/path/to/application');
        define('BASE_URI', '/uri/home');
    break;
    case 'live':
        define('BASE_PATH', '/different/path/to/application');
        define('BASE_URI', '/');
    break;
}
于 2010-10-20T11:11:28.313 回答