【发布时间】:2009-12-05 02:21:30
【问题描述】:
我正在尝试在文件夹结构中包含特定的“管理视图”文件。我熟悉 include/require 或如何递归地包含文件夹,但我需要做的就是从每个目录中包含一个文件名 - admin_view.php 文件。
所以,我的目录。结构如下:
要包含的文件位于根目录。
- mods
- type
-- type1
-admin_view.php
-other files I do not need included
-- type2
-admin_view.php
-other files I do not need included
-- type3
-admin_view.php
-other files I do not need included
如您所见,递归地包含文件是行不通的,手动包含它们可以正常工作,.. 直到我们开始从主“类型”文件夹中添加和删除目录.. 然后,我们必须手动编辑所有包含代码.. 所以,我希望找到一个函数,或者 sn-p,它可以让我查看所有具有“类型”目录的目录,并且只包含一个特定的文件名 (admin_view.php)
这是我到目前为止拼凑起来的,但它不起作用...... :(
$modulesDir = array (
ROOT_DIR.'mods/type',
);
$view_name = "admin_view.php";
function __autoload($view_name) {
global $modulesDir;
foreach ($modulesDir as $directory) {
if (file_exists($directory . $view_name)) {
require_once ($directory . $view_name);
return;
}
}
}
非常感谢!这个地方是一个很棒的资源。我非常感谢它为开发社区提供的所有知识、更正、澄清等! J
编辑:
我能够用这个加载视图文件。但我觉得有更好的方法来做到这一点:
澄清
我误用了 __autoload 函数.. 因为我没有加载类.. 只是要包含在主文档中的 php 文件...抱歉错误,我正在学习 :)
【问题讨论】:
-
好吧,我相信您的解决方案已经足够好了 :) 实际上比其他建议更简单。除非您对此有任何具体问题,否则应该没问题。
-
好的..如果你看不到任何其他(阅读:更好)的方式来做到这一点并且现在的方式没有问题..我将继续使用我弗兰肯斯坦的版本.. 谢谢!