在PHP中包含后获取当前文件名

时间:2014-09-25 11:10:41

标签: php include

让我假装我有以下内容 的 class.wrapper.php

// loop through events/ directory ($eventFile = filename of parsed file)
include $eventFile;

myevent.php

echo __FILE__;

myotherevent.php

echo __FILE__;

两个echo都返回相同的东西: class.wrapper.php ,有没有办法获得真正的文件名?不是包含代码的那个?

class.wrapper 是加密API的一部分,允许用户在给定目录中定义自定义php文件,以便在主应用程序中触发给定事件时调用用户定义的代码,因此我不能编辑主类,我只能通过编辑“事件”文件

来做到这一点

2 个答案:

答案 0 :(得分:1)

尝试以下功能

function GetInclude($file, $params = array())
    {
        extract($params);
        include $file;
    }
    myevent.php
    <?php GetInclude('class.wrapper.php', array('includerFile' => __FILE__)); ?>
    myotherevent.php
    <?php GetInclude('class.wrapper.php', array('includerFile' => __FILE__)); ?>
    class.wrapper.php
    echo $includerFile;

答案 1 :(得分:0)

如果您想获取真实姓名,例如访问此文件的完整路径,请使用函数realpath("yourfile.extension")

我告诉你这个简短的例子:

我们说我有一个名为index.php的文件。我想展示它的完整路径。这是代码:

<?php
    echo realpath("index.php");
?>

在我的示例中,我将文件保存在C:\ xampp \ htdocs \ test \ index.php中。结果将显示此确切路径。

希望它有所帮助。