首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从include()获取调用文件名

从include()获取调用文件名的方法是使用__FILE__常量。__FILE__常量返回当前文件的绝对路径,可以通过这个常量来获取调用文件的路径和名称。

例如,在文件a.php中,我们可以使用__FILE__常量来获取当前文件的路径和名称:

代码语言:php
复制
<?php
echo "当前文件名:" . basename(__FILE__);
?>

这将输出:

代码语言:txt
复制
当前文件名:a.php

如果我们在另一个文件b.php中包含a.php,则__FILE__常量将返回b.php的路径和名称:

代码语言:php
复制
<?php
include 'a.php';
?>

在这种情况下,__FILE__常量将返回b.php的路径和名称,而不是a.php的路径和名称。

如果我们需要获取调用文件的路径和名称,而不是当前文件的路径和名称,则可以使用debug_backtrace()函数来获取调用堆栈信息,然后从中提取调用文件的路径和名称。例如:

代码语言:php
复制
<?php
function get_caller_file() {
    $backtrace = debug_backtrace();
    $caller_file = $backtrace[2]['file'];
    return $caller_file;
}

function include_and_echo() {
    include 'a.php';
}

echo "调用文件名:" . basename(get_caller_file());
include_and_echo();
?>

这将输出:

代码语言:txt
复制
调用文件名:b.php

在这个例子中,get_caller_file()函数使用debug_backtrace()函数获取调用堆栈信息,然后从中提取调用文件的路径和名称。include_and_echo()函数包含a.php文件,但是get_caller_file()函数返回的是调用它的文件b.php的路径和名称。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Kettle之“获取文件名

    现在需要把这些文件的内容导入一个表,除了文件中的两列,还要存一列记录对应的文件名。 作为一个搞数据库的,导入数据本来是小事一桩,可这有几百个文件要手工逐个处理未免太麻烦了,于是想起了Kettle。...Kettle的转换处理数据流,其中有一个“获取文件名”的输入对象,可以使用它在导入文件数据时添加上文件名字段,而且支持正则表达式同时获取多个文件名,正好适用此场景。下面为实现步骤。 1....新建一个转换,包含“获取文件名”、“文本文件输入”、“表输出”三个步骤,如下图所示。 ? 2. “获取文件名”如下图所示。 ? 注意:正则表达式的*前面要加一个“.”,否则报错。 3....注意:通过这种设置后文本文件输入中字段选项无法自动获取字段。不过可以先不设置从前一步骤获取文件名,利用这个步骤的自身属性先获取字段,然后再设置。 4. “表输出”如下面两图所示。 ? ?

    3.3K10

    如何在 Go 函数中获取调用者的函数名、文件名、行号...

    如果让我们用 Go 设计一个Log Facade,就需要我们自己在门面里获取调用者的函数名、文件位置了,那么在Go里面怎么实现这个功能呢?...是不是有点晕,这里举个例子 func CallerA() { //获取的是 CallerA 这个函数的调用栈 pc, file, lineNo, ok := runtime.Caller(0)...//获取的是 CallerA函数的调用者的调用栈 pc1, file1, lineNo1, ok1 := runtime.Caller(1) } 函数的返回值为调用栈标识符、带路径的完整文件名...获取调用者的函数名 runtime.Caller 返回值中第一个返回值是一个调用栈标识,通过它我们能拿到调用栈的函数信息 *runtime.Func,再进一步获取调用者的函数名字,这里面会用到的函数和方法如下...总结 今天介绍了通过 runtime.Caller 回溯调用获取调用者的信息的方法,虽然强大,不过频繁获取这个信息也是会对程序性能有影响。

    6.5K20

    java获取文件名乱码_java导出文件名中文乱码

    Java读linux系统文件文件名乱码的解决办法 1,问题描述 web应用想通过Java读取linux系统文件显示到web页面上,结果中文文件名出现乱码?...问题场景描述:当用户通过浏览器访问tomcat服务器,请求查看某一路径下文件列表信息,tomcat的web应用调用getFilesByPath(String path)方法读取文件列表信息响应请求,页面中文文件名出现乱码...2,解决方案 web系统调用该方法读取文件列表后,中文命名的文件或文件夹显示为乱码。...解决方法是将path参数utf-8转换为系统编码,再根据path去遍历文件。...解决乱码问题就是源头追溯的显示,一路纠结编码就这么简单。。。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    3.1K20

    谈谈iOS获取调用

    iOS开发过程中难免会遇到卡顿等性能问题或者死锁之类的问题,此时如果有调用堆栈将对解决问题很有帮助。那么在应用中如何来实时获取函数的调用堆栈呢?...本文参考了网上的一些博文,讲述了使用mach thread的方式来获取调用栈的步骤,其中会同步讲述到栈帧的基本概念,并且通过对一个demo的汇编代码的讲解来方便理解获取调用链的原理。...while(fp) { pc = *(fp + 1); fp = *fp; } 二、汇编解释下 如果你非要问为什么会这样,我们可以汇编角度看下函数是怎么调用的,从而更深刻理解为什么fp总是存储了上一个栈帧的...总结归纳了下,获取调用栈需要下面几步: 1、挂起线程 thread_suspend(main_thread); 2、获取当前线程状态上下文thread_get_state _STRUCT_MCONTEXT...fp寄存器 函数调用栈 也谈栈和栈帧 运行时获取函数调用栈 深入解析Mac OS X & iOS 操作系统 学习笔记

    3.5K31

    python判断文件名是否包含某字段_python获取文件名不含后缀名

    … 0 77 2019-12-13 15:19 − 一 导入模块 os和os.path模块 二 相关的函数 三 例子 1 getcwd() 返回当前的工作目录 2 os.path.abspath(文件名或者目录...cnblogs.com/blog/827651/201908/827651-20190814210006490-45… 2019-11-04 11:49 − 首先,导入os模块 1 import os 获取当前文件所在文件夹的路径...,getcwd() 更改当前目录:chdir() 创建文件夹,mkdir() 获取文件夹下所有子文件夹及文件,listdir() 判断是否是文件夹os.path.isdir() 更改文件名称,rename...20191204084331804-20638255.jpg) > 人生苦短,我用 Python 前文传送门: [小白学 Python 爬虫(1):开篇](https://www.gee… 2019-12-18 19:15 − 官网下载

    1.5K10
    领券