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

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

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

教程

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

$php_Self= $_SERVER['PHP_SELF']; //获取网页地址
//输出结果:http://www.jb51.net/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;
}

如果感觉上面的文章不够细,建议大家看这篇文章:http://www.jb51.net/article/22056.htm

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

(0)

相关推荐

  • php 获取当前访问的url文件名的方法小结

    推荐函数: 一是PHP获取当前页面的网址: dedecms也是用的这个 //获得当前的脚本网址 function GetCurUrl() { if(!empty($_SERVER["REQUEST_URI"])) { $scriptName = $_SERVER["REQUEST_URI"]; $nowurl = $scriptName; } else { $scriptName = $_SERVER["PHP_SELF"]; if(empty(

  • php读取目录及子目录下所有文件名的方法

    本文实例讲述了php读取目录及子目录下所有文件名的方法,分享给大家供大家参考.具体实现方法如下: 一般来说php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下: 复制代码 代码如下: $dir="./caxa/"; $file=scandir($dir); print_r($file); 稍微复杂点的,来自于php手册: 复制代码 代码如下: $dir = "/etc/php5/"; // Open a known directory,

  • php实现批量修改文件名称的方法

    本文实例讲述了php实现批量修改文件名称的方法.分享给大家供大家参考,具体如下: <?php session_start(); set_time_limit(0); //function allfile($dir) // { // $files=array(); // if(is_file($dir)) // { // return $dir; // } // $handle = opendir($dir); // if($handle) { // while(false !== ($file

  • php实现按文件名搜索文件的远程文件查找器

    对于本地,我们可以利用windows自带的查找去进行查找,但是对于线上的话,如查找ftp空间里面文件,本程序是很有用的. 使用效果: php文件查找器源码: 复制代码 代码如下: <html> <head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>php版文件查找(file search)</ti

  • php获取文件名称和扩展名的方法

    php获取文件名称和扩展名 1.basename()-返回路径的文件名 请看下面php代码: <?php $path = "/usr/www/html/index.php"; echo basename($path)."<br>"; //如果选择suffix则忽略扩展名 echo basename($path,".php"); ?> 运行结果: index.php index 2.dirname()-返回当前脚本的文件路径

  • php获取文件名后缀常用方法小结

    本文实例汇总了php获取文件名后缀常用方法.分享给大家供大家参考.具体实现方法如下: <?php header("Content-type:text/html;charset=utf-8"); $pic = "abc.jpg"; //第一种方法 $pics = explode('.',$pic); $num = count($pics); echo $pics[$num-1]."<br />"; //第二种方法 echo end

  • PHP批量修改文件名称的方法分析

    本文实例讲述了PHP批量修改文件名称的方法.分享给大家供大家参考,具体如下: 在这里我们利用一个战地自己写的一个例子来具体分析一下利用PHP批量修改文件名称的思路和注意事项. 从这个例子里你将会看到,PHP如何判断一个路径是不是目录,如何用PHP取得路径中的文件名称和文件的扩展名,随机函数rand的基本应用,以及这个程序的核心内容递归函数的基本应用. 程序功能:利用PHP目录和文件函数遍历用户给出目录的所有的文件和文件夹,修改文件名称: 首先判断用户给出的目录是不是一个合法目录: 我们这里只是修

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

    今天写表白墙时候的导航判断遇到的这个问题.我的解决思路是这样: 判断当前的php文件名来确定导航条的哪块高亮. 那php如何获取当前的url文件名呢? 我是这样处理的 :shock: 教程 首先肯定是要获取当前页面URL的,在这里我们使用php的$_SERVER['PHP_SELF']来获取获取网页地址 假设url为 http://www.jb51.net/index.php $php_Self= $_SERVER['PHP_SELF']; //获取网页地址 //输出结果:http://www.

  • 获取目录下所有文件名的代码

    一:获取指定文件夹的文件 复制代码 代码如下: procedure searchfile(path:string);//注意,path后面要有'\'; var SearchRec:TSearchRec; found:integer; begin found:=FindFirst(path+'*.*',faAnyFile,SearchRec); while found=0 do begin if (SearchRec.Name<>'.') and (SearchRec.Name<>'

  • python 获取当前目录下的文件目录和文件名实例代码详解

    os模块下有两个函数: os.walk() os.listdir() # -*- coding: utf-8 -*- import os def file_name(file_dir): for root, dirs, files in os.walk(file_dir): print(root) #当前目录路径 print(dirs) #当前路径下所有子目录 print(files) #当前路径下所有非目录子文件 输出格式为: 当前文件目录路径 当前路径下子文件目录(若存在, 不存在则为 []

  • python获取程序执行文件路径的方法(推荐)

    1.获取当前执行主脚本方法:sys.argv[0]和_ file _ (1)sys.argv 一个传给Python脚本的指令参数列表.sys.argv[0]是脚本的名字.一般得到的是相对路径,用os.path.abspath(sys.argv[0])得到执行文件的绝对路径: dirname, filename = os.path.split(os.path.abspath(sys.argv[0])) os.path.realpath(sys.argv[0]) 如果在命令行执行sys.argv返回

  • 用js来获取上传的文件名纯粹是为了美化而用

    为啥要用js来获取上传的文件名呢?其实纯粹是为了美化,友好, 但是,可不是网上流传的那样,用 path.substring(path.lastIndexOf('/')+1) ; 这个样在工作的时候会出现不少问题. 比如,firefox的input表单的value值默认就可以获取到文件名,而ie 则显示文件路径. 所以要区别对待,在firefox下 lastIndexOf('/')得到的是-1,而在ie下,目录显示的又是反斜杠,\,当然在Linux 下,其他浏览器获取到的又是正斜杠 / ( 暂时未

  • java 获取当前函数名的实现代码

    废话不多说,直接上代码 复制代码 代码如下: import java.text.SimpleDateFormat; import java.util.Date; /** * Java实现类似C/C++中的__FILE__.__FUNC__.__LINE__等,主要用于日志等功能中. * * @version 1.0  * */ public abstract class CommonFunction { /** * 打印日志时获取当前的程序文件名.行号.方法名 输出格式为:[FileName |

  • php获取目录中所有文件名及判断文件与目录的简单方法

    一,php获取目录中的所有文件名 1.打开要操作目录的目录句柄 代码示例: //打开当前目录下的目录pic下的子目录common. $handler = opendir('pic/common'); 2.循环读取目录下的所有文件 代码示例: /*其中$filename = readdir($handler) 每次循环时将读取的文件名赋值给$filename,$filename !== false. 一定要用!==,因为如果某个文件名如果叫'0′,或某些被系统认为是代表false,用!=就会停止循

  • 如何用php获取程序执行的时间

    在head.htm中加入,也就是在默认模版中添加"$stime=microtime(true); //获取程序开始执行的时间" 复制代码 代码如下: <!--<?php$stime=microtime(true); //获取程序开始执行的时间$GuideFid[$fid]=str_replace("<a href='$webdb[www_url]' class='guide_menu'>>首页</a>","&quo

  • PHP获取MySQL执行sql语句的查询时间方法

    如下所示: //计时开始 runtime(); //执行查询 mysql_query($sql); //计时结束. echo runtime(1); //计时函数 function runtime($mode=0) { static $t; if(!$mode) { $t = microtime(); return; } $t1 = microtime(); list($m0,$s0) = explode(" ",$t); list($m1,$s1) = explode("

  • python3通过selenium爬虫获取到dj商品的实例代码

    先给大家介绍下python3 selenium使用 其实这个就相当于模拟人的点击事件来连续的访问浏览器.如果你玩过王者荣耀的话在2016年一月份的版本里面就有一个bug. 安卓手机下载一个按键精灵就可以在冒险模式里面设置按键,让手机自动玩闯关,一局19个金币,一晚上就一个英雄了.不过 程序员也不是吃素的.给一个星期设置了大概4000金币上限.有兴趣的可以去试试.(注:手机需要root) 进入正题: from selenium import webdriver from selenium.webd

随机推荐