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文件
Jan 04 PHP
joomla内置的表单验证功能使用方法
Jun 11 PHP
PHP XML error parsing SOAP payload on line 1
Jun 17 PHP
php关于array_multisort多维数组排序的使用说明
Jan 04 PHP
使用HMAC-SHA1签名方法详解
Jun 26 PHP
CI(CodeIgniter)框架中的增删改查操作
Jun 10 PHP
常用PHP框架功能对照表
Oct 23 PHP
PHP冒泡算法详解(递归实现)
Nov 10 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
Dec 18 PHP
PHP+原生态ajax实现的省市联动功能详解
Aug 15 PHP
PHP设计模式之原型模式定义与用法详解
Apr 03 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下MAIL的另一解决方案
2006/10/09 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
按上下级层次关系输出内容的PHP代码
2010/07/17 PHP
php4与php5的区别小结(配置异同)
2011/12/20 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
PHP中的事务使用实例
2015/05/26 PHP
php无限级分类实现方法分析
2016/10/19 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
实测jquery data()如何存值
2013/08/18 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
2015/09/01 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
2016/08/25 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
vue 获取url参数、get参数返回数组的操作
2020/11/12 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
介绍Python的Django框架中的QuerySets
2015/04/20 Python
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
python顺序的读取文件夹下名称有序的文件方法
2018/07/11 Python
python退出命令是什么?详解python退出方法
2018/12/10 Python
Python socket处理client连接过程解析
2020/03/18 Python
Yahoo-PHP面试题1
2016/07/20 面试题
《我的伯父鲁迅先生》教学反思
2014/02/12 职场文书
电子信息工程专业推荐信
2014/02/14 职场文书
爱国口号
2014/06/19 职场文书
关于读书的演讲稿400字
2014/08/27 职场文书
党支部创先争优承诺书
2014/08/30 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
Golang数据类型和相互转换
2022/04/12 Golang