你可以在 php 中递归运行 require_once 吗?
Posted
技术标签:
【中文标题】你可以在 php 中递归运行 require_once 吗?【英文标题】:Can you run require_once recursively in php? 【发布时间】:2013-04-15 15:57:34 【问题描述】:是否可以像这样在一行中递归运行require_once
:
<?php
require_once('./OAuth2/*');
或者您必须直接访问每个文件并require
吗?
【问题讨论】:
你最好使用自动加载器 您可以使用glob()
在数组中获取与该模式匹配的文件列表,foreach
在数组上并包含每个元素。但是您可能应该考虑使用autoloader 代替...
【参考方案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);
【讨论】:
以上是关于你可以在 php 中递归运行 require_once 吗?的主要内容,如果未能解决你的问题,请参考以下文章