php正确添加所需文件

时间:2016-05-13 04:53:10

标签: php

我有以下文件夹结构。

enter image description here

的config.php

<?php
class config {
    const server = "localhost";
}

conn.php

<?php
 require_once './config.php';

firstExample.php

<?php

require_once './db/conn.php';

当我运行conn.php时没有错误。但如果我运行firstExample.php我收到了以下错误

Warning: require_once(./config.php): failed to open stream: No such file or directory in C:\wamp\www\testX\db\conn.php on line 2

我做了一些测试,并且能够通过将conn.php更改为

来修复错误
require_once './db/config.php';

我的问题是我需要从许多文件夹,子文件夹中添加conn.php。如上所述更改不起作用。例如,如果我在上述更改后再次运行conn.php,那么我可以#39;我得到同样的错误。

我想知道的是添加文件的正确方法。因此,我应该将conn.php添加到任何文件config.php中。

4 个答案:

答案 0 :(得分:2)

查看目录结构

你不需要输入&#34; ./"

尝试:

 require_once 'config.php';

或者您可以在CONSTANT中定义路径并使用它。

答案 1 :(得分:1)

您可以在PHP中使用$_SERVER变量:$_SERVER['DOCUMENT_ROOT']

因此,您的conn.php将更改为:

<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/db/config.php';

testX是您的根文件夹时。

答案 2 :(得分:1)

您可以使用$_SERVER['DOCUMENT_ROOT']。这是文档根目录C:\wamp\www的路径,因此包括文件在哪里指向所需文件的链接是相同的require_once $_SERVER['DOCUMENT_ROOT'].'/testX/db/config.php';

但由于服务器设置,它并不总是显示在此目录中。要获得更加防弹的方法,您应该在index.php或其他文件中定义路径,即根目录&amp;以后使用那个定义,例如: define('BASE_PATH', dirname(__FILE__) ); 然后才使用:
require_once BASE_PATH.'/testX/db/config.php;

答案 3 :(得分:1)

您将要使用魔术常量__DIR__,它将根据包含正在执行/包含的文件的目录构建绝对路径:

<强> conn.php

require_once __DIR__.'/config.php';

<强> firstExample.php

require_once __DIR__.'/db/conn.php';

来源:http://php.net/manual/en/language.constants.predefined.php