PHP擷取當前相對於網域名稱目錄的方法
本文執行個體講述了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程式設計有所協助。
http://www.bkjia.com/PHPjc/1022065.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1022065.htmlTechArticlePHP擷取當前相對於網域名稱目錄的方法 本文執行個體講述了PHP擷取當前相對於網域名稱目錄的方法。分享給大家供大家參考。具體如下: http://127.0.0.1...