PHP获取当前执行php文件名的代码

yipeiwu_com7年前PHP代码库

今天写表白墙时候的导航判断遇到的这个问题。我的解决思路是这样:

判断当前的php文件名来确定导航条的哪块高亮。
那php如何获取当前的url文件名呢?
我是这样处理的 :shock:

教程

首先肯定是要获取当前页面URL的,在这里我们使用php的$_SERVER['PHP_SELF']来获取获取网页地址
假设url为 //www.jb51.net/index.php

$php_Self= $_SERVER['PHP_SELF']; //获取网页地址
//输出结果://www.jb51.net/index.php

输出后发现,我们只需要index.php,前面一大串东西都是没用的。
怎么办呢?
这里我们就用到了substr()函数。
substr() 是用来返回字符串的一部分:

substr语法
substr(string,start,length)

参数 描述
string 必需。规定要返回其中一部分的字符串。
start

必需。规定在字符串的何处开始。

  • 正数 – 在字符串的指定位置开始
  • 负数 – 在从字符串结尾开始的指定位置开始
  • 0 – 在字符串中的第一个字符处开始
length

可选。规定被返回字符串的长度。默认是直到字符串的结尾。

  • 正数 – 从 start 参数所在的位置返回的长度
  • 负数 – 从字符串末端返回的长度

看到这个函数的第二个参数,规定在字符串的何处开始。很显然是在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;
}

如果感觉上面的文章不够细,建议大家看这篇文章:https://www.jb51.net/article/22056.htm

这样就解决了,很多情况下都是需要一些字符串截取函数的帮助才可以得到我们想要的结果。

相关文章

如何给phpcms v9增加类似于phpcms 2008中的关键词表

最近用phpcms v9二次开发一个人站点,之前用2008中有个比较舒服的关键词全部显示出来功能,而v9将关键词列表功能增加到了搜索中,如果搜索一个关键词就会自动产生一个增加到了sear...

php使用socket调用http和smtp协议实例小结

本文实例讲述了php使用socket调用http和smtp协议。分享给大家供大家参考,具体如下: socket发送HTTP请求 http协议请求报文格式 get ## 请求方法 请求...

深入理解PHP之源码目录结构与功能说明

本文讲述了PHP源码目录结构与功能说明。分享给大家供大家参考,具体如下: PHP之所以能在web开发语言中排名靠前,不仅仅是因为语法简单,上手容易。我个人认为更多是因为其语言本身的:模块...

php开启多进程的方法

本文实例讲述了php开启多进程的方法。分享给大家供大家参考。具体实现方法如下: 复制代码 代码如下: <?php  $IP='192.168.1.1';//Wi...

再Docker中架设完整的WordPress站点全攻略

再Docker中架设完整的WordPress站点全攻略

1. 安装 Docker 在我们真正开始之前,我们需要确保在我们的 Linux 机器上已经安装了 Docker。我们使用的主机是 CentOS 7,因此我们用下面的命令使用 yum 管理...