2013-07-23 30 views
0

在PHP中,如何獲取站點中任何位置的站點文件夾路徑?
在php中獲取主站點文件夾路徑

例如:在/ var/WWW /站點名稱

這是我走到這一步:

$r1 = $_SERVER['document_root']   // = /var/www 
$r2 = __DIR__       // = /var/www/sitename/view/folder/subf 
$r3 = str_replace($r1 . '/', '', $r2); // = sitename/views/folder/subf 
$arr = explode('/', $r3);    // = array (sitename, views, folder ...) 
$sitepath = $r1 . '/' . $arr[0]   // = /var/www/sitename 

是否有任何其他最簡單的方法?

編輯:有不同名稱的不同服務器中的許多網站副本,可能是site1(/ var/www/site1)或sitexx347(/ var/www/sitexx347)或onemoresite.com(public_html/onemoresite),以及我想在網站上隨意知道會這樣,而不是調用

require_once '../../../../../../config.php'; 

require_once $_SERVER['DOCUMENT_ROOT'] . '/IveNoIdeaWhatTheNameIs/config.php'; 

我可以這樣做:

require_once $sitepath . 'config.php'; 

我再說一遍,我不知道網站名是什麼。

編輯2:我現在做的方式現在完美,我只是想知道一個最簡單的方法。 其實這可以縮短到像這樣做:

$r = explode('/', str_replace($_SERVER['DOCUMENT_ROOT'].'/', '', __DIR__)); 
$sitepath = $_SERVER['DOCUMENT_ROOT'] . '/' . $r[0]; 
+0

見我回答這個問題:HTTP://計算器。 com/questions/17814932/make-header-sidebar-footer-constant-across-website/17815087#17815087看看site_config.php代碼是否有幫助。 – Maximus2012

+0

定義「網站文件夾路徑」是什麼意思? –

+0

@ Maximus2012:其實這是我想要做的事情之一,無論你在網站的什麼地方,你都可以調用require_once($ sitepath。'/site_config.php'); – user1626498

回答

0

幸福感的事情是讓網站的文件夾名稱無論身在何處所在的劇本,不管是什麼是網站的名稱,無論身在何處所在的項目(本地主機或網絡),我GOOGLE了一下,我什麼都沒發現。似乎沒有超級簡單的方法來做到這一點。
所以這是我此

$r = explode('/', str_replace($_SERVER['DOCUMENT_ROOT'].'/', '', __DIR__)); 
$sitepath = $_SERVER['DOCUMENT_ROOT'] . '/' . $r[0]; 

第一行返回與其中此代碼位於由「/」沒有文檔根(的public_html或/瓦帕/萬維網分離的腳本的路徑的陣列答案或/ var/WWW)
第二線串接與作爲站點文件夾的名稱(而不是主機名的第一個數組元素的document_root - 這是不是我們希望在這種情況下)

所以,你可以得到這個工作在網站內的任何地方,

EX1(Linux的地方):在站點1 /控制器/ Controller.php這樣您`ll獲得的/ var/WWW/site1的

EX2(服務器在線):在網站名稱/視圖/ index.php文件,你會得到/的public_html /網站名稱
                  **主機名可能是differentname.com,它並沒有改變。

EX3(在Windows/WAMP)在站點2 /類/其它/ sub.php您`ll獲得C:/ WAMP/WWW /站點2

1

$_SERVER['DOCUMENT_ROOT']應該做的伎倆。正如the manual中所述

當前腳本在其下執行的文檔根目錄,如服務器的配置文件中所定義。

您不能將/var/www/sitename配置爲根目錄。

編輯:有幾種不同的方式你去做,但我認爲你有什麼好。確保你在縮短版本中獲得explode()的第一個元素。

+0

不,這就是我所說的,在問題 – user1626498

+0

中很清楚在你的情況下,當你瀏覽你的網站時,你必須做www.yoursite.com/sitename--你想要什麼? –

+0

我想知道主站點文件夾的相對路徑,無論網站中的「DEEP」如何找到php腳本 – user1626498