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 相关文章推荐
用文本文件实现的动态实时发布新闻的程序
Oct 09 PHP
php学习之 数组声明
Jun 09 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
Oct 22 PHP
C/S和B/S两种架构区别与优缺点分析
Oct 23 PHP
php查看网页源代码的方法
Mar 13 PHP
利用php输出不同的心形图案
Apr 22 PHP
注意!PHP 7中不要做的10件事
Sep 18 PHP
Laravel5中Cookie的使用详解
May 03 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 26 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 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代码
2006/12/06 PHP
php 面向对象的一个例子
2011/04/12 PHP
php实现utf-8转unicode函数分享
2015/01/06 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
php 中self,this的区别和操作方法实例分析
2019/11/04 PHP
Laravel统一错误处理为JSON的方法介绍
2020/10/18 PHP
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
vue使用vue-i18n实现国际化的实现代码
2018/04/08 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
python3实现暴力穷举博客园密码
2016/06/19 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
Python列表list排列组合操作示例
2018/12/18 Python
python安装pywin32clipboard的操作方法
2019/01/24 Python
详解python 模拟豆瓣登录(豆瓣6.0)
2019/04/18 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
python 五子棋如何获得鼠标点击坐标
2019/11/04 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
Web前端绘制0.5像素的几种方法
2017/08/11 HTML / CSS
Viking比利时:购买办公用品
2019/10/30 全球购物
销售经理工作职责
2014/02/03 职场文书
资源工程专业毕业生求职信
2014/02/27 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
拥有这5个特征人,“命”都不会太差
2019/08/16 职场文书
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS