Какие специальные символы могут обрабатываться шаблоном glob? - PullRequest
0 голосов
/ 04 января 2012

До сих пор я работал только с *, но есть ли что-то вроде lookaheads, groups?

Я бы хотел получить все *.php, кроме controller.php.

Что я должен изменить в этом glob(dirname(__FILE__) . DIRECTORY_SEPARATOR . '*.php') вызове, чтобы исключить controller.php?

Или мне следует избегать glob и вместо этого работать с чем-то другим?

Ответы [ 3 ]

2 голосов
/ 04 января 2012

php glob () использует правила, используемые функцией libc glob (), которая аналогична правилам, используемым обычными оболочками.Таким образом, шаблоны, которые вам разрешено использовать, довольно ограничены.

glob () возвращает массив всех путей, соответствующих данному шаблону.Фильтрация controller.php из массива результатов является одним из решений.

1 голос
/ 04 января 2012

Согласно http://www.manpagez.com/man/3/glob/: (серверная часть за php's glob()) The glob() function is a pathname generator that implements the rules for file name pattern matching used by the shell.

Это единственный фильтр, без исключений. Если вы хотите * .php, вы получите * .php.

0 голосов
/ 04 января 2012

Попробуйте,

<?php
$availableFiles = glob("*.txt");
foreach ($availableFiles as $key => $filename) {
    if($filename == "controller.php"){
        unset($availableFiles[$key]);
    }
}
echo "<pre>"; print_r($availableFiles);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...