今天写表白墙时候的导航判断遇到的这个问题。我的解决思路是这样:
判断当前的PHP文件名来确定导航条的哪块高亮。 那PHP如何获取当前的url文件名呢? 我是这样处理的 :shock:
教程
首先肯定是要获取当前页面URL的,在这里我们使用PHP的$_SERVER['PHP_SELF']
来获取获取网页地址
假设url为 //www.jb51.cc/index.PHP
输出后发现,我们只需要index.PHP,前面一大串东西都是没用的。
怎么办呢?
这里我们就用到了substr()函数。
substr()
是用来返回字符串的一部分:
substr语法
substr(string,start,length)
描述 |
---|
看到这个函数的第二个参数,规定在字符串的何处开始。很显然是在url中的最后一个/开始才是我们所需要的。
于是我们又需要用到 strrpos()
函数来取得/最后一次出现的位置。
strrpos语法
strrpos(string,find,start)
描述 |
---|
所以总代码如下:
PHP;">
$PHP_Self = substr($_SERVER['PHP_SELF'],strripos($_SERVER['PHP_SELF'],"/")+1);
//为啥要加1呢?因为要排除前面的那个 /
比较推荐的一个函数
PHP;">
//获得当前的脚本网址
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;
}