2012-08-01 297 views
-2

PHP程序員!包含路徑 - 相對路徑

我在PHP中包含函數有問題。

我有一個網站,其中包含一個左列欄,該列包含動態內容,我用包含函數與相對路徑獲得,因爲絕對路徑在包含函數中不可用。

當我導航到其他文件夾中的其他文件時,出現以下錯誤:include(folder/fileToBeIncluded.php)[function.include]:未能打開流:沒有這樣的文件或目錄在/ home/mywebsite/public_html /第3行的thissite/folder/subfolder/leftcolumn.php

我該如何處理這個問題?我完全迷失了,現在我一直在尋找Google和StackOverflow約10分鐘。

謝謝!

+0

是什麼讓你覺得你不能在包含函數中包含絕對路徑? – 2012-08-01 18:20:55

+0

其實*閱讀*錯誤。它告訴你問題是什麼。你想要的文件不在新文件夾中,對嗎?您需要更改包含路徑以確保正確性。我建議研究絕對路徑,並使用它們。 – MetalFrog 2012-08-01 18:21:40

+0

「我一直在尋找Google和StackOverflow 10分鐘。」布拉沃。很大的努力...請下次再努力搜索一下,並加入一些您自己的代碼,以使我們更輕鬆。 – 2012-08-01 18:28:18

回答

1

絕對路徑可以與include語句一起使用。

嘗試:

include $_SERVER['DOCUMENT_ROOT'] . '/folder/fileToBeIncluded.php'; 
// or 
include dirname(__FILE__) . '/../fileToBeIncluded.php'; // relative to the path of the file doing the include 

最起碼,你可以硬編碼的路徑,以絕對確保(直到您移動別處您的網站):

include '/home/yoursite/public_html/folder/fileToInclude.php'; 

請參閱include文檔。

0

我可以建議創建一個專用的「包含」文件夾嗎?喜歡的東西:

/home/mywebsite/includes

在php.ini,你需要添加:

include_path = "/home/mywebsite/includes/"

這樣一來,所有呼叫包括來自/home/mywebsite/includes檢查你看之前需要的文件因爲它相對於正在處理的當前頁面的位置。