我有一個文件navbar.php文件夾視圖/一般。它包括一些相對路徑文件../controllers/file1.php等..相對路徑和嵌套包括
我只能在同一個視圖/常規文件夾中的其他文件中包含navbar.php文件。如果我嘗試將其包含在文件之外,例如views/signup,那麼navbar.php(../controllers/file1.php等)中包含的include路徑將不再相關。
我該如何解決這個問題,所以navbar.php可以從任何地方使用?
我有一個文件navbar.php文件夾視圖/一般。它包括一些相對路徑文件../controllers/file1.php等..相對路徑和嵌套包括
我只能在同一個視圖/常規文件夾中的其他文件中包含navbar.php文件。如果我嘗試將其包含在文件之外,例如views/signup,那麼navbar.php(../controllers/file1.php等)中包含的include路徑將不再相關。
我該如何解決這個問題,所以navbar.php可以從任何地方使用?
我有一個類似的挑戰,並創建了一個定義了所有,我希望能夠調用的,所需要的相關路徑常量的單個文件。我將這個文件包含在我的所有頁面中(我定義了$ urlRoot,這樣它就可以在所有環境中工作,並且可以移動到不同的域等):
文件:pathData.php(爲您的示例添加MENUDIR):
$baseDir = dirname(__DIR__) . '/';
$rootUrl = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . '/';
define('ROOTURL', $rootUrl);
define('BASEDIR', $baseDir);
define('INCLUDES', $baseDir . 'includes/');
define('INCLUDESURL', ROOTURL . 'includes/');
define('JQUERYURL', ROOTURL . 'includes/jquery/');
define('MENUDIR', ROOTURL . 'views/general/');
然後在每個文件中,我將該文件包含在包含相對目錄路徑的包含文件中。例如:
include("pathData.php");
or
include("../pathData.php");
or
include("../../pathData.php);
etc.
所以你的情況,你可以(取決於你的pathData文件):
include("../pathData.php");
include(MENUDIR . "navbar.php");
etc...
如果你使用PHP 5.3+:
include __DIR__ . '/relative/path/from/this/file.php';
__DIR__是一個神奇的恆定保持當前文件的絕對路徑。
如果您正在使用較早版本的PHP的:
include dirname(__FILE__) . '/relative/path/from/this/file.php';
您也可以概括一切從您的網站通過使用$_SERVER['DOCUMENT_ROOT']
變量主辦的根目錄,這將是目錄,您應該index.php
被定位。
使用方法如下:
include($_SERVER['DOCUMENT_ROOT'] . 'path/from/root/website/location/to/file.php');
它在Windows以及Linux。 :-) –
@RyanVincent - 幸運的是 - 我對Windows很不熟悉。哈! – Xmy
這是一個非常典型的方法,用於許多複雜的應用程序,並且將是一個很好的開始。 –