2017-01-21 89 views
0

我也有相同的文件名和經常相同的內容PHP的包括從其他文件夾中的文件,如果不存在

不同的文件夾有沒有一種方法,包括從其他文件夾,而不是創建相同的文件對於那些有文件相同的內容?

目錄結構

rome 
    - index.php 
    - detail.php 
    - show.php 

另一個文件夾

london 
    - index.php (same content as rome/index.php folder) 
    - detail.php (different content as rome/detail.php folder) 
    - show.php (same content as rome/show.php folder) 

然後倫敦文件夾的實施例必須包括僅具有從羅馬/ detail.php和「索引」和「不同的內容detail.php顯示「必須從羅馬文件夾加載

現在我創建與此內容具有相同內容的文件

require ../rome/index.php 

和工作,但我必須爲每個文件夾創建文件,當我移動或在「羅馬」重命名文件夾的文件,我必須做同樣的每個文件夾...

服務器是Linux,那麼如果可能的話,我也可以在htaccess中使用一個字符串....

回答

1

最簡單的方法是使用FrontController來控制所有行爲 - 您可以根據自己的需要組織常見的響應。 FrontController應該是你的應用程序的核心部分。它通過many frameworks實現,並且這樣做應該這樣做,而不是創建和維護許多文件。

+0

FrontController似乎是一個很好的解決方案,謝謝... 但現在我不知道如果我要重寫我的原代碼(羅馬夾在這例如,我正在用這種方式編寫一個簡單的前端控制器 $ path =「{$ _SERVER ['DOCUMENT_ROOT']} $ _ SERVER ['REQUEST_URI']}」;如果(!file_exists($ path)) 包含str_replace(「london」,「rome」,$ path); 和我有錯誤的文件,需要subcontent .... – FireFoxII

+0

@FireFoxII你好哥們。你可以在新問題中編寫整個代碼還是編輯這個問題?此外,請添加有關此錯誤的更多詳細信息(追溯)。 –

+0

謝謝,我打開這裏http://stackoverflow.com/questions/41848860/php-create-front-controller-to-include-file-from-other-folder-if-not-exist – FireFoxII

0

試着用這根的.htaccess:

RewriteEngine on 

# If the request is not for a valid file 
RewriteCond %{REQUEST_FILENAME} !-f 
# But not '/rome/' 
RewriteCond %{REQUEST_URI} !^/rome/ 
# Rewrite to '/rome/...' if exist 
RewriteCond %{DOCUMENT_ROOT}/rome/$1 -f 
RewriteRule ^[^/]+/(.+)$ /rome/$1 [L] 
相關問題