我不是 PHP 人:我必须为一个简单的网站创建一个全局导航部分,但我必须从网站的根目录以及多个子目录中引用它。所以我的问题是,如何在导航部分中创建可以在任何位置工作的链接?
我试过dirname(__FILE__)
了,但这一直追溯到服务器根目录。我不确定这个服务器的目录结构会是什么样子,我也希望能够在本地开发。
我在这里想念什么?
更新
感谢 Orangepill,我需要dir(__FILE__)
而不是dirname
.
我不是 PHP 人:我必须为一个简单的网站创建一个全局导航部分,但我必须从网站的根目录以及多个子目录中引用它。所以我的问题是,如何在导航部分中创建可以在任何位置工作的链接?
我试过dirname(__FILE__)
了,但这一直追溯到服务器根目录。我不确定这个服务器的目录结构会是什么样子,我也希望能够在本地开发。
我在这里想念什么?
更新
感谢 Orangepill,我需要dir(__FILE__)
而不是dirname
.
通常,$_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;
}