我必須處理複雜的目錄層次結構,而且我正面臨包含PHP路徑的常見問題。在PHP中處理包含和複雜的目錄層次結構
我已經搜索了網頁,但是我還沒有找到任何符合我需要的東西。
舉例來說,我使用不絕的簡單目錄結構:在站點根沒有PHP腳本,子目錄的只有一個級別,在這個分段的所有PHP腳本。要包含一個PHP文件,我只是使用相對路徑,始終以「../」就像在這個例子中:
include('../my_subdirectory/my_script.php') ;
這樣一來,我一定能找到我想要的文件...
但有一些缺點:
- 我不能有子目錄的多個級別(原因:當一個文件包含一個文件,該文件包含另一個文件,用於包括路徑的第三個文件是不是相對於第二個文件文件的路徑,而是相對於第一個文件的路徑)。
- 從C++背景的(用手工生成文件),我一直認爲這是一個骯髒的方式做到這一點
所以我想辦法直接從站點根包括文件(不是 $ _SERVER ['DOCUMENT_ROOT']因爲我可能有獨立的網站到這個document_root的子目錄中)。
我希望它是:
- 集中在只有一個文件
- 從服務器到另一個便攜式沒有任何變化(如果可能)
- 保持PHP的包括簡潔大方,沒有複雜的字符串CONCAT,這應該是這樣的: 「包括( 'directory_a/directory_b/my_php_script.php')」
使用包含的.htaccess:
php_value include_path "/var/www/my_website/"
......除了路徑被硬編碼到.htaccess中,出於某種原因而煩人:在我的情況下,我有網站的產品,開發和測試版本,並且.htaccess被更新(它包含很多其他的東西)。如果可能的話,我想要一個可以在任何地方工作的.htaccess。將include_path設置爲當前.htaccess路徑的東西會很好。
那麼......在PHP中處理include()和複雜目錄層次結構的最佳實踐是什麼?
你包括哪些文件下面$ _ SERVER?也許有一個更好的方法來做到這一點,無論是使用集中式自定義'include_file()'函數或自動加載 – 2010-10-05 12:50:13