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扩展图文教程
Dec 12 PHP
国外比较好的几个的Php开源建站平台小结
Apr 22 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
php实现批量上传数据到数据库(.csv格式)的案例
Jun 18 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
Aug 10 PHP
PDO操作MySQL的基础教程(推荐)
Aug 18 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 PHP
PhpStorm本地断点调试的方法步骤
May 21 PHP
Laravel框架路由设置与使用示例
Jun 12 PHP
PHP中有关长整数的一些操作教程
Sep 11 PHP
PHP数组对象与Json转换操作实例分析
Oct 22 PHP
Laravel服务容器绑定的几种方法总结
Jun 14 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
php imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
PHP数据库连接mysql与mysqli对比分析
2016/01/04 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
js模拟滚动条(横向竖向)
2013/02/22 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
jquery实现右键菜单插件
2015/03/29 Javascript
纯javascript模仿微信打飞机小游戏
2015/08/20 Javascript
JS实现左右拖动改变内容显示区域大小的方法
2015/10/13 Javascript
常用的javascript设计模式
2017/01/11 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
微信小程序实现简单表格
2019/02/14 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
2019/12/06 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
Python多线程学习资料
2012/12/19 Python
python实现数通设备端口监控示例
2014/04/02 Python
详解Python3中yield生成器的用法
2015/08/20 Python
python字典排序的方法
2019/10/12 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
PyCharm+PyQt5+QtDesigner配置详解
2020/08/12 Python
Python logging模块handlers用法详解
2020/08/14 Python
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
关键字throw与throws的用法差异
2016/11/22 面试题
人事专员工作职责
2014/02/22 职场文书
如何写好自荐信
2014/04/07 职场文书
团队口号大全
2014/06/06 职场文书
MySQL 8.0 之不可见列的基本操作
2021/05/20 MySQL
python如何利用traceback获取详细的异常信息
2021/06/05 Python
试了下Golang实现try catch的方法
2021/07/01 Golang