2011-10-01 138 views
0

下面是一個示例文件結構:包含來自包含文件的文件。引用問題

page.php文件
db.php中
文件夾1/subpage.php
文件夾2/fn.php

page.php文件

require_once('folder2/fn.php'); 

文件夾1/subpage.php

require_once('../folder2/fn.php'); 

文件夾2/fn.php - 需要數據庫連接

require_once('../db.php'); 
/* then gets info from database */ 

基本上,fn.php包含數據庫函數來獲取/設置信息。它需要db.php,它是數據庫連接文件。此代碼在subpage.php中工作,但不在page.php中(獲取「無法打開流:沒有這樣的文件或目錄在......」錯誤)。

有(使用相對引用)的方式,使得它在所有文件中沒有工作目錄級別的事?

感謝您的幫助!到包括

+0

的文件您在page.php文件是重要的..你應該把page.php文件的代碼更好的可理解性.. –

+0

魯克米:想象這是整個代碼...有包含在頁面上沒有其他文件.PHP – Sherzod

回答

1

我總是使用絕對路徑。有幾個方法可以做到這一點,該命令將返回絕對路徑

<?php echo getcwd(); ?> 

But this is what I personally use: 
<? include $_SERVER['DOCUMENT_ROOT'] . "/includes/analytics.php"; ?> 

無論身在何處的文件是php將具有絕對路徑。

+0

另一種方法是使用目錄名(__ FILE __),以獲得當前腳本的絕對路徑,它在包括 –

+0

關於添加公共目錄以外的文件是什麼?你不能做www.example.com/../db.php,是嗎? – Sherzod

+0

沒有路徑必須是絕對/hompages/public_html/include/db.php或相對包括/ db.php中您可以使用URL如果你包括從另一臺服務器自己這個外的文件使用捲曲完成。如果你想在你的站點根目錄之外包含一個文件,你可以使用下面的主頁/ dir_name/db.php,你可以使用這段代碼來動態編寫文檔根目錄,或者你可以動態地執行它。包括$ SERVER ['DOCUMENT_ROOT']。 「/dir_name/db.php」; ?>希望回答你的問題。 –