需要PHP方面的帮助“;包括—如何在变量中保存我的网站路径?

需要PHP方面的帮助“;包括—如何在变量中保存我的网站路径?,php,include,require,include-path,Php,Include,Require,Include Path,我使用以下方案包括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文件:

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
然而,我不知道该怎么做


请提出建议。

我可以想出两种方法:

  • 创建一个公共文件,包含在每个其他文件中,用于设置变量
    $my\u website
  • 将网站路径添加到include_路径中,这样就不必使用网站路径来包含文件(
    需要“path/to/My/File.php”;

  • 使用-将使您的生活更简单(您甚至可以从.htaccess进行控制)。

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

    然后您可以使用:

    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;
    }
    

    我可能不明白你到底想要什么,但是你不能把路径添加到include路径中,然后完全相对吗?或者只是在引导中定义基本路径。。。或者是什么阻止你只写
    require($my_-website./Path/To/my/File.php”)?(当然,定义一些东西比抛出这个变量更好)只有一个具有单个入口点的配置可以让您使用PHP来完成。否则,需要更改某些web服务器配置。显而易见的事情。在#1:您将如何包含该公共文件(您将使用什么路径)?假设在我上面的例子中,
    a.php
    是一个公共文件,我将把它放在我的网站根目录中,并使用相对路径将其包括在内:只要不更改目录结构,这将起作用。因此,对于您的示例b.php->require'../Dir1/a.php'和c.php->require'../Dir1/a.php'。但是,正如其他答案所指出的,最好使用include_path问题是,您使用什么路径来包含
    config.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;
    }