2012-07-16 51 views
0

我正在研究產品目錄。目錄結構與域根目錄相距3級。PHP - 獲取當前腳本的名稱和目錄,不包括域名?

所以說例如我有一個橙色的產品頁面。橙子在一個名爲柑橘的子類別中,這個子類別叫做水果,位於名爲「產品」的目錄中。所以這個頁面的真實路徑將http://www.mydomain.com/products/fruit/citrus/orange.php

現在,我怎麼會只得到如下:運行orange.php

/fruit/citrus/orange我曾嘗試:dirname(__FILE__);但這給出了http://www.mydomain.com/products/fruit/citrus/orange的輸出,其中包括所訪問的我不要。

任何人都可以提供任何建議或建議,我可以如何完成這樣的事情?

謝謝!

+0

使用'$ _ SERVER [ 'REQUEST_URI']' – Ansari 2012-07-16 22:44:20

回答

1
$levels = 3; 
$temp = array(); 

$parts = explode('/', $_SERVER['REQUEST_URI']); 
for ($i = 0; $i < $levels; $i++) { 
    $temp[] = pathinfo(array_pop($parts), PATHINFO_FILENAME); 
} 
$temp[] = ''; 

$result = implode('/', array_reverse($temp)); 
+0

謝謝您的答覆。這是一個完美的解決方案。但我注意到你已經使用了'php_self'你能否建議在不應該使用這個函數的地方使用。這就像在研究與這個問題有關的信息時一樣,我對這個功能一般不喜歡,但是我不太確定爲什麼? – 2012-07-16 22:49:17

+1

@BlackberryFan對不起,這實際上不是這個信息的最佳選擇。原因是'PHP_SELF'包含當前正在執行的腳本相對於文檔根目錄的實際文件系統路徑,並且如果URL已被重寫以獲取到您的文件,它可能不正確。用於這個特定任務的最好的東西是'REQUEST_URI',並且我已經相應地更新了答案。 – DaveRandom 2012-07-16 22:52:27

+0

感謝戴夫,我真的很感謝你的意見和額外的建議。它確實很有意義,你說什麼! – 2012-07-16 22:55:49