Получить файлы из каталога dir с помощью glob и проверить, находится ли он в массиве, затем включить? - PullRequest
1 голос
/ 27 августа 2009

Как я могу использовать функцию php glob, чтобы получить файлы из каталога и поместить их в массив, а затем включить их в index.php?file=filename, если он существует?

Это то, что я придумал до сих пор, но это не работает.

$files = glob("files/*.php");
$file = array($files);

if (in_array(..

ИЛИ есть ли более разумный способ сделать это без необходимости записи всех страниц в index.php?

Ответы [ 4 ]

0 голосов
/ 27 августа 2009
$files = glob("files/*.php");
foreach($files as $file) $group[]="index.php?page=$file";

Теперь в массиве $ group у вас есть пути к страницам

0 голосов
/ 27 августа 2009

glob возвращает массив, поэтому вам больше ничего не нужно делать с ним. Пример в документации показывает что-то похожее на следующее:

foreach (glob("files/*.php") as $filename) {
    echo "index.php?file=".basename($filename, ".php");
}
0 голосов
/ 27 августа 2009

Не знаю, понял ли я, но если вы хотите поместить все файлы в массив и отправить его на страницу index.php, это способ сделать это:

$files = glob("files/*.php");
$group=array();
foreach($files as $file) $group[]="file[]=$file";
$path="index.php".(count($group) ? "?".implode("&",$group) : "");
0 голосов
/ 27 августа 2009

Если я вас правильно понимаю, вы можете использовать array_intersect():

$files = glob("files/*.php");
$allowedFiles = array('1.php', '2.php', '3.php')

$matchedFiles = array_intersect($files, $allowedFiles);

foreach ($matchedFiles as $file)
{
    // do something with 'index.php?file=' . $file
}

Не уверен, что вы подразумеваете под "включить их в ..."

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...