使用某种通配符表达式在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"); ?>
答案 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脚本。