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


Posted in PHP onMarch 02, 2017

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

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

教程

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

$php_Self= $_SERVER['PHP_SELF']; //获取网页地址
//输出结果:https://3water.com/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://3water.com/article/22056.htm

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

PHP 相关文章推荐
php Smarty初体验二 获取配置信息
Aug 08 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
探寻PHP脚本不报错的原因
Jun 12 PHP
php魔术变量用法实例详解
Nov 13 PHP
php批量添加数据与批量更新数据的实现方法
Dec 16 PHP
php自动识别文字编码并转换为目标编码的方法
Aug 08 PHP
PHP+MySQL实现无极限分类栏目的方法
Dec 23 PHP
php实现用户注册密码的crypt加密
Jun 08 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 PHP
php strftime函数的详细用法
Jun 21 PHP
PHP PDOStatement::fetch讲解
Jan 31 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
Sep 30 PHP
PHP两种实现无级递归分类的方法
Mar 02 #PHP
PHP 二级子目录(后台目录)设置二级域名
Mar 02 #PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 #PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
Mar 02 #PHP
数组任意位置插入元素,删除特定元素的实例
Mar 02 #PHP
根据key删除数组中指定的元素实现方法
Mar 02 #PHP
如何用PHP做到页面注册审核
Mar 02 #PHP
You might like
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
JS功能代码集锦
2016/05/04 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
微信小程序搜索功能(附:小程序前端+PHP后端)
2019/02/28 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
tornado框架blog模块分析与使用
2013/11/21 Python
深入理解python中的atexit模块
2017/03/07 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
深入分析python数据挖掘 Json结构分析
2018/04/21 Python
基于python批量处理dat文件及科学计算方法详解
2018/05/08 Python
Python数据结构之图的应用示例
2018/05/11 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
对python程序内存泄漏调试的记录
2018/06/11 Python
python读取Excel实例详解
2018/08/17 Python
详解opencv Python特征检测及K-最近邻匹配
2019/01/21 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
文言文形式的学生求职信
2013/12/03 职场文书
法学函授自我鉴定
2014/02/06 职场文书
销售职业生涯规划范文
2014/03/14 职场文书
结婚典礼致辞
2015/07/28 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js