在根(www)中,我有兩個文件夾。如何從另一個目錄中包含文件
在第一個文件夾「folder1」中,我放了一個名爲register.php的文件。
在下一個文件夾「folder2」中,我放入了名爲header.php和footer.php的文件。
我需要在register.php文件中包含folder2中的頁眉和頁腳文件。
我該怎麼做?我試圖用這個包括../folder2/header.php
..但它不工作
在根(www)中,我有兩個文件夾。如何從另一個目錄中包含文件
在第一個文件夾「folder1」中,我放了一個名爲register.php的文件。
在下一個文件夾「folder2」中,我放入了名爲header.php和footer.php的文件。
我需要在register.php文件中包含folder2中的頁眉和頁腳文件。
我該怎麼做?我試圖用這個包括../folder2/header.php
..但它不工作
在某些配置中,加入./
(當前目錄)的伎倆像這樣:
include './../folder2/header.php';
另外,您也可以在文檔根目錄來指定:
include $_SERVER['DOCUMENT_ROOT'] . 'folder2/header.php';
include $_SERVER['DOCUMENT_ROOT'] . '/folder2/header.php';
都會從網站的任何目錄工作3210 它被稱爲absolute path
,它是解決文件
但是唯一可靠的方法,在實際它應該像使用變量,以前在cfg.php
然而定義
include $_SERVER['DOCUMENT_ROOT'] . '/cfg.php';
// some code
include $TPL_HEADER;
,它可能也會失敗。因爲你可以只是錯了這些路徑
這裏去您的主要問題:
,但它不工作
有沒有這樣的事情「它不工作」
有始終是一個全面的錯誤消息,告訴你什麼完全不起作用,而不是它。您沒有自己閱讀,並且您沒有在這裏發佈它,讓我們向您展示正確路徑以外的這些錯誤消息。
包含文件通常應該保存在服務器根目錄之外。
可以說你的設置是;
www/website1
和
www/includes
然後你php.ini文件,或。htaccess文件應規定
的include_path = WWW /包括
從任何文件然後,在任意目錄下,不管多遠下來的樹木,他們去,你只是做:
include 'myfile.php';
其中myfile.php是在萬維網/包括/ myfile.php
然後你就可以不用擔心這些問題
由於PHP手冊狀態here $ _SERVER ['DOCUMENT_ROOT']是「當前腳本執行時的文檔根目錄,如服務器配置文件中所定義的。」對於這個例子,$ _SERVER ['DOCUMENT_ROOT']可以正常工作,但是。 。 。通過使用> = PHP 5.3中提供的新的"magic constants",我們可以使此代碼更安全一些。
把你的包含在一個子文件夾中,並使用魔術常量DIR來引用包含的文件。 DIR返回當前正在執行的php文件的目錄。通過使用這個,你可以在你的目錄結構中的任意位置移動你的包含所有包含的文件夾,而不需要擔心你的包含是否仍然可以工作。
你完全誤解了這些信息。在'__DIR__'常量中沒有什麼「更安全」,它不能幫助您在任何地方使用 。它與'dirname(__ FILE __)'和相同的* relative *路徑相同,而不是*絕對*。我常常在這裏看到一個奇怪的錯覺。 – 2010-09-18 07:46:09
非常感謝你的禮貌迴應。 – bmarti44 2010-09-18 15:22:10
我使用__DIR__而不是$ _SERVER ['DOCUMENT_ROOT']的原因是因爲如果您的包含文件的位置發生變化,__DIR__仍然會爲您的includes文件夾提供正確的路徑,從而使您可以輕鬆地在多個項目在任何地點。如果我使用$ _SERVER ['DOCUMENT_ROOT']。 '/includeme.php'我必須始終在文檔根目錄中包含includeme.php。如果我在文件/www/folder1/includer.php中使用了__DIR__來引用/ www/folder1/includes中的包含,我可以在站點中的任意位置剪切並複製folder1,或者將其複製到任何位置的其他站點。 – bmarti44 2010-09-18 15:29:56
include dirname(__FILE__).'/../folder2/header.php';
<?php include($_SERVER['DOCUMENT_ROOT'] . 'folder2/header.php'); ?>
嘗試這是工作在我的情況
<?php require_once __DIR__."/../filename.php";?>
我沒有收到錯誤消息。這只是打印沒有PHP的頁面。 – EllaJo 2011-05-17 18:47:34