在PHP中使用通配符作为目录级别

时间:2011-04-17 00:43:57

标签: php directory hierarchy config

使用某种通配符表达式在PHP中跳过目录级别的最佳方法是什么?

我有一个config.php文件,每个子目录都是唯一的,我需要将它包含在我页面的标题中。

示例:

http://mysite.com/dir1/dir2/could-be-anything/config.php
http://mysite.com/dir1/dir2/something-different/config.php
http://mysite.com/dir1/dir2/different-again/config.php

我想要的是告诉我的主PHP页面包含config.php,当它的父目录名称可能会改变时?

<?php include("http://mysite.com/dir1/dir2/*/config.php"); ?>

这样的东西

2 个答案:

答案 0 :(得分:1)

您希望使用glob和foreach来包含匹配的每个文件。

foreach (glob("path/*/config.php") as $config)
    include($config);

有关详细信息,请参阅man page on glob

答案 1 :(得分:1)

如果位置是由dir1和dir2定义的,而第三个只是一个可读的unkown,那么你可以用一个表达式完成它:

include(current(glob("./dir1/dir2/*/config.php")));

注意:无法在http://mysite/...上加载包含脚本。 HTTP没有提供目录列表,并且它不起作用,因为在这种情况下将解析掉config.php脚本。