本文實例講述了PHP獲取當前相對於域名目錄的方法。分享給大家供大家參考。具體如下:
http://127.0.0.1/dev/classd/index.php/download
比如這個地址,我想得到紅色區域的地址用於生成站內的鏈接,名為 baseurl。
用 $_SERVER['SCRIPT_NAME'] 就可以了, $_SERVER['SCRIPT_NAME'] 是當前正在訪問的PHP文件的相對路徑,只要如下稍作處理:
從$_SERVER['SCRIPT_NAME']中獲取目錄部分,並且替換dirname函數可能出現的反斜槓問題
代碼如下:
$baseUrl = str_replace('','/',dirname($_SERVER['SCRIPT_NAME']));
保證為空時能返回可以使用的正常值
代碼如下:
$baseUrl = empty($baseUrl) ? '/' : '/'.trim($baseUrl,'/').'/';
這樣就可以正常獲取到 /dev/classd/ 這部分的目錄地址了。
順便看了一下 Zend Framework 的 baseUrl() 函數,結果一看那麼一大堆代碼就沒再繼續看了,我就想不通同樣的功能他用了一大堆一大堆的代碼,從$_SERVER裡獲取了一堆,然後中間經過兩三個類,四五個方法才最終被我們直接調用,除了中間有三行是獲取當前的PHP文件以外,其它都是沒用和無謂的處理,ZF本身運行的已經夠慢的了,這是什麼一個意思呢。感興趣的朋友可以研究一下。
希望本文所述對大家的php程序設計有所幫助。