我有以下文件夹结构。
的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
中。
答案 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