如何在PHP中找到父目录?

时间:2011-03-08 03:59:40

标签: php directory parent

我在HTML中使用此代码可以正常工作:

<link href="/mywebsite/styles.css" rel="stylesheet" type="text/css"/>

但是,PHP中的这段代码不会:

require('/mywebsite/db.php');

db.php和styles.css都在同一目录中。我可以用:

require(dirname(__DIR__) . '/db.php');

但这看起来相当丑陋。我错过了一些明显的东西吗?

3 个答案:

答案 0 :(得分:2)

  

我错过了一些明显的东西吗?

是。 :)

require('/mywebsite/db.php');

/系统根C:\,如果您是Windows用户)。它与您的站点所在的URL无关,它与站点运行的系统有关。我猜您的网站会保存在/users/aygosis/webroot/index.php之类的地方。您的系统上可能不存在/mywebsite/db.php

require dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'db.php'

实际上是一种很好的方法。您还可以在一个可在任何地方使用的文件中建立一个基础,并将所有包含相对于它:

define('ROOT', dirname(__FILE__) . DIRECTORY_SEPARATOR);

...

require ROOT . 'db.php';

答案 1 :(得分:1)

这里常用的方法是定义一些与文件系统相关的常量,然后使用它们,即在我的小本土MVC框架中,我定义了以下内容:

if (!defined('DS')) {
    /**
     * Shorter Directory Separator Constant
     */
    define('DS', DIRECTORY_SEPARATOR);
}

if (!defined('ROOT')) {
    /**
     * Application Directory path Constant
     */
    define('ROOT', dirname(dirname(__FILE__)));
}

然后我引用这样的文件:

require ROOT . DS . 'System' . DS . 'Library' . DS . 'compatibility.php';

答案 2 :(得分:0)

在php.ini配置文件中,将网站文件的位置添加到include_path。这样,当您调用include()或require()

时,它将搜索该目录