【问题标题】:Name of the file included into [duplicate]包含在[重复]中的文件的名称
【发布时间】:2025-11-25 10:15:01
【问题描述】:

我知道这听起来令人困惑,但是您如何找到包含另一个文件的文件的名称。

例如,我有两个文件 a.php 和 b.php。 b.php 像这样包含在 a.php 中:

a.php:

include('b.php');

现在我想将代码放入 b.php 以查找 a.php 的名称。这有意义吗?

编辑:好的,我想出了一个更好的方法来改写这个问题:

如何获取包含文件的名称(所以在上面的示例中,使用 b.php 中的代码找到文件 a.php 的名称)。这行得通吗?

basename($_SERVER['SCRIPT_FILENAME']);

【问题讨论】:

  • 定义更多细节,你想要什么?
  • 也许可以解释一下为什么你也想要这个,因为这听起来像是一件奇怪的事情需要做,有可能更好的方法。
  • 我认为:*.com/questions/10265216/… 你可能会感兴趣。
  • 我有一个更新 sql 数据库的程序,完成后将用户重定向到表单页面。有多个表单页面,所以我需要一个指向每个页面的动态链接。这有意义吗,有点难以解释?
  • @Brice 谢谢你的解释,更好。

标签: php


【解决方案1】:

不确定您为什么需要它,但可以使用全局 __FILE__ 常量:

echo basename(__FILE__);

来自documentation关于__FILE__

文件的完整路径和文件名。如果在包含中使用,则返回包含文件的名称。自 PHP 4.0.2 起,FILE 始终包含一个绝对路径,其中符号链接已解析,而在旧版本中,它在某些情况下包含相对路径。

【讨论】:

  • 我认为他想知道谁包括b.php。在b.php 中使用__FILE__ 将返回b.php 的完整路径。正如我在对他的问题的评论中所说,这已经在另一个问题中得到了解决(考虑到我得到了他的要求:D)
  • 这与所要求的相反。
【解决方案2】:

这就是你想要的

http://in1.php.net/get_included_files

最后试试这个功能。

【讨论】:

    最近更新 更多