今天寫表白墻時候的導航判斷遇到的這個問題。我的解決思路是這樣:
判斷當前的php文件名來確定導航條的哪塊高亮。
那php如何獲取當前的url文件名呢?
我是這樣處理的 :shock:
教程
首先肯定是要獲取當前頁面URL的,在這里我們使用php的$_SERVER['PHP_SELF']來獲取獲取網頁地址
假設url為 http://www.survivalescaperooms.com/index.php
$php_Self= $_SERVER['PHP_SELF']; //獲取網頁地址//輸出結果:http://www.survivalescaperooms.com/index.php
輸出后發現,我們只需要index.php,前面一大串東西都是沒用的。
怎么辦呢?
這里我們就用到了substr()函數。
substr() 是用來返回字符串的一部分:
substr語法
substr(string,start,length)
| 參數 | 描述 |
|---|---|
| string | 必需。規定要返回其中一部分的字符串。 |
| start | 必需。規定在字符串的何處開始。
|
| length | 可選。規定被返回字符串的長度。默認是直到字符串的結尾。
|
看到這個函數的第二個參數,規定在字符串的何處開始。很顯然是在url中的最后一個/開始才是我們所需要的。
于是我們又需要用到 strrpos()函數來取得/最后一次出現的位置。
strrpos語法
strrpos(string,find,start)
| 參數 | 描述 |
|---|---|
| string | 必需。規定被搜索的字符串。 |
| find | 必需。規定要查找的字符。 |
| start | 可選。規定在何處開始搜索。 |
所以總代碼如下:
$php_Self = substr($_SERVER['PHP_SELF'],strripos($_SERVER['PHP_SELF'],"/")+1);//為啥要加1呢?因為要排除前面的那個 /
比較推薦的一個函數
//獲得當前的腳本網址 function GetCurUrl() { if(!empty($_SERVER["REQUEST_URI"])) { $scriptName = $_SERVER["REQUEST_URI"]; $nowurl = $scriptName; } else { $scriptName = $_SERVER["PHP_SELF"]; if(empty($_SERVER["QUERY_STRING"])) { $nowurl = $scriptName; } else { $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"]; } } return $nowurl;}
如果感覺上面的文章不夠細
這樣就解決了,很多情況下都是需要一些字符串截取函數的幫助才可以得到我們想要的結果。
新聞熱點
疑難解答
圖片精選