當我包含這樣的文件:include("/testsitedir/include/subdir/inc.php");
對testsitedir
文件夾中名爲this.php
的文件,我得到典型的failed to open stream: No such file or directory in ...\testsitedir\this.php
錯誤。包括vs定位路徑
但是,當我編寫一個簡單的HTML定位標記時:<a href="/testsitedir/include/subdir/inc.php">Test Link</a>
(URL與include的相同)瀏覽器自動爲我解析URL,並知道/
表示我的網站根目錄。
那麼,我可以如何讓我的包含方式以HTML定位標記所用的相同方式來解析URL?
爲了更好地理解,下面是我正在嘗試做的事情。我有一個頭文件位於網站根目錄內名爲content
的子目錄中。我想弄清楚如何使用相同的URL在每個文件上包含標題。我的方法是隻使用頭文件的絕對URL。這成爲一個問題的原因是因爲我想用一個CONSTANT
來隨時更改網站的根目錄。此外,該網站的根目錄並不總是服務器的根目錄。因此,當我想將站點放在子目錄www.example.com/view/site/siteroot/
的服務器上時,我會將常量SITE_ROOT
定義爲/view/site/siteroot
,幷包含使用include(SITE_ROOT."/includes/file.php);
的所有文件。但是,include不能將/
正向識別爲站點根分隔符。我打算使用實際的網站名稱,但出於安全原因,我不想啓用url_include
。
嗯,我不覺得愚蠢。謝謝哥們。這似乎奏效了! – cbronson
@cbronson'$ _SERVER'變量是相當難以捉摸的,除非你被顯示,所以不要擔心! –