0

我不是 PHP 人:我必须为一个简单的网站创建一个全局导航部分,但我必须从网站的根目录以及多个子目录中引用它。所以我的问题是,如何在导航部分中创建可以在任何位置工作的链接?

我试过dirname(__FILE__)了,但这一直追溯到服务器根目录。我不确定这个服务器的目录结构会是什么样子,我也希望能够在本地开发。

我在这里想念什么?

更新 感谢 Orangepill,我需要dir(__FILE__)而不是dirname.

4

1 回答 1

0

通常,$_SERVER['DOCUMENT_ROOT']让您知道站点根目录的路径是什么。和魔术常量为您提供绝对文件或目录路径__FILE____DIR__要创建相对于文档根目录的绝对路径,您需要从绝对目录路径中删除 document_root,例如

echo relativeToDocumentRootPath(__FILE__), "<br>", relativeToDocumentRootPath(__DIR__);

function relativeToDocumentRootPath($path) {
    $root = $_SERVER['DOCUMENT_ROOT'];
    $relative;

    if (!empty($root) && 0 === strpos($path, $root)) {
        $relative = substr($path, strlen($root));
    }else{
        trigger_error('Could not create relative path due to the absence of $_SERVER[\'DOCUMENT_ROOT\']', E_WARNING);
        $relative = $path;
    }

    return $relative;
}
于 2013-07-20T04:30:43.377 回答