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 中的类
Oct 09 PHP
PHP 增加了对 .ZIP 文件的读取功能
Oct 09 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
Jun 28 PHP
PHP获取MAC地址的函数代码
Sep 11 PHP
PHP 基于文件头的文件类型验证类函数
May 01 PHP
PHP应用JSON技巧讲解
Feb 03 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
Jun 25 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
Jul 01 PHP
PHP中mysqli_affected_rows作用行数返回值分析
Dec 26 PHP
PHP版QQ互联OAuth示例代码分享
Jul 05 PHP
详解PHP队列的实现
Mar 14 PHP
不常用但很实用的PHP预定义变量分析
Jun 25 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
Admin generator, filters and I18n
2011/10/06 PHP
php采集中国代理服务器网的方法
2015/06/16 PHP
如何在PHP中使用数组
2020/06/09 PHP
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
2016/03/30 Javascript
Angularjs 实现分页功能及示例代码
2016/09/14 Javascript
JavaScript  event对象整理及详细介绍
2016/10/10 Javascript
AngularJS表单基本操作
2017/01/09 Javascript
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
2019/06/17 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
vue基于better-scroll仿京东分类列表
2020/06/30 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
如何在python中使用selenium的示例
2017/12/26 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
canvas学习笔记之2d画布基础的实现
2019/02/21 HTML / CSS
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
小学六一儿童节活动总结
2015/05/05 职场文书
党支部鉴定意见
2015/06/02 职场文书