【问题标题】:Can you run require_once recursively in php?你可以在 php 中递归运行 require_once 吗?
【发布时间】:2013-04-15 15:57:34
【问题描述】:

是否可以像这样在一行中递归运行require_once

<?php
require_once('./OAuth2/*');

或者您必须直接访问每个文件并require 吗?

【问题讨论】:

  • 你最好使用自动加载器
  • 您可以使用glob() 在数组中获取与该模式匹配的文件列表,foreach 在数组上并包含每个元素。但是您可能应该考虑使用autoloader 代替...

标签: php require-once


【解决方案1】:

不能那样做。像这样的东西会起作用:

foreach (glob("./OAuth2/*.php") as $filename)
{
    require_once($filename);
}

【讨论】:

  • +1 我一直在使用它,而且效果很好。我通常这样做,尽管foreach (glob("classes/*.php") as $filename) { require_once($filename); } 带有 .php 以确保我不包含目录中可能存在的任何其他随机文件(可能像 index.html 文件)
【解决方案2】:

递归所有文件列表和require_once在一个目录中:

$files = array();

function require_once_dir($dir){

       global $files;

       $item = glob($dir);

       foreach ($item as $filename) {

             if(is_dir($filename)) {

                  require_once_dir($filename.'/'. "*");

             }elseif(is_file($filename)){

                  $files[] = $filename;
             }
        }
}

$recursive_path = "path/to/dir";

require_once_dir($recursive_path. "/*");

for($f = 0; $f < count($files); $f++){

     $file = $files[$f];

     require_once($file);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-26
    • 2015-12-24
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    相关资源
    最近更新 更多