Используйте подстановочный знак в качестве уровня каталога в PHP - PullRequest
0 голосов
/ 17 апреля 2011

Каков наилучший способ пропустить уровень каталога в 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 ]

1 голос
/ 17 апреля 2011

Если местоположение определено с помощью dir1 и dir2, а третье просто не читаемое, то вы можете сделать это с помощью одного выражения:

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

Примечание. Загрузка сценария включенияболее http://mysite/... невозможно.HTTP не предоставляет списков каталогов, и он не будет работать, потому что в этом случае этот скрипт config.php будет проанализирован.

1 голос
/ 17 апреля 2011

Вы хотите использовать glob и foreach для включения каждого файла, который соответствует.

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

Подробнее см. Справочную страницу на glob.

...