【问题标题】:How can I include all files in current directory excluding file itself如何在当前目录中包含除文件本身之外的所有文件
【发布时间】:2011-11-06 00:39:40
【问题描述】:

我写了一个迷你函数来包含目录中的所有php文件

foreach (glob("*.php") as $filename)
{
    include $filename;
}

如何在当前目录中包含除文件本身之外的所有文件(位于哪个函数中)?

【问题讨论】:

    标签: php function include


    【解决方案1】:

    以下内容应该会有所帮助。您应该只获取当前脚本文件名并与数组中的项目进行比较:

    $this_file = basename($_SERVER['SCRIPT_FILENAME']);
    foreach (glob("*.php") as $filename)
    {
        if ($filename !== $this_file) {
            include $filename;
        }
    }
    

    更多细节:

    【讨论】:

    • 值得一提:没有说,当前脚本就是被调用的脚本
    【解决方案2】:
    foreach (glob("*.php") as $filename) {
      if (realpath($filename) !== __FILE__) include $filename;
    }
    

    或许

    foreach (array_diff(array_map('realpath',glob("*.php")), array(__FILE__) as $filename) {
      include $filename;
    }
    

    【讨论】:

    • 我相信这是一个错误 - $filename 将是例如。 “main.php”,但__FILE__ 可能是“/main.php”,然后比较会失败。
    • 你是对的。我假设glob() 的结果包含绝对路径,但事实并非如此。第二种解决方案“不再那么好”了,但它应该可以工作
    猜你喜欢
    • 2010-10-07
    • 2015-11-27
    • 1970-01-01
    • 2023-03-28
    • 2021-12-24
    • 2011-05-18
    • 1970-01-01
    • 2011-03-04
    相关资源
    最近更新 更多