2014-03-03 268 views
-1

我的服務器上有一個名爲「layout」的文件夾,它包含兩個文件:top.html和bottom.html。我試圖想出一個PHP包含腳本,以便我可以將它放在任何頁面的頂部和底部,並有一個地方來編輯我的佈局。事情我已經嘗試:PHP包含問題

代碼:

<?php include '/layout/bottom/html' ?> 
<?php include './layout/bottom/html' ?> 
<?php include '../layout/bottom/html' ?> 
<?php include '.../layout/bottom/html' ?> 
<?php $path = $_SERVER['DOCUMENT_ROOT']; $path .= "/layout/top.html"; include($path); ?> 

錯誤:

No such file or directory in C:---serverpath---\www\index.php on line 25

任何幫助將真正理解。

+0

可能的只是'layout/page.html'? – Sam

+2

請花時間,並至少寫一個問題到你的問題。我們也喜歡錯誤消息。 –

+0

我很抱歉,我想它打敗了不要問一個問題的目的大聲笑。我的問題是,是否有任何方法可以製作一個無論文件位置如何都可以工作的包含腳本? – Davie

回答

4

PHP包括相對於您正在使用的文件

因此,如果您folder/script.php

而且在script.php你這樣做:

include "layout/top.html"; 

它會尋找:folder/layout/top.html

相反,如果你有你的文件是這樣的:

include dirname(__FILE__) . "/../layout/top.html"; 

它尋找:folder/../layout/top.html解析爲:layout/top.html

如果然後有另外一個腳本:folder/folder2/script2.php,包括像:

include dirname(__FILE__) . "/../../layout/top.html"; 

至於PHP5.3使用,而不是你應該__DIR__dirname(__FILE__)

+0

爲什麼'dirname(__ FILE __)'而不是'__DIR__'的任何理由? – naththedeveloper

+1

@FDL兼容性。 – Halcyon

+0

+1,啊,我總是假設人們正在使用最新版本,你的回答是5.4,但根據[手冊](http://uk1.php.net/constants.predefined) - 它被添加到5.3中。 (只要你可以編輯你的答案)。 – naththedeveloper