Я предлагаю вам использовать классы, чтобы обернуть логи c. : -)
<?php declare(strict_types=1);
final class Finder
{
/** @var string */
private $path;
public function __construct(string $path)
{
$this->path = $path;
}
public function folderNames(): array
{
if (!is_dir($this->path)) {
throw new \Exception('Path is not a directory');
}
if (!$directory = opendir($this->path)) {
throw new \Exception('The directory can not be open');
}
$directories = [];
while (($file = readdir($directory))) {
if (is_dir($file)) {
$directories[] = $file;
}
}
return $directories;
}
}
// Usage example:
$dropdown = new Finder($_SERVER['PHP_SELF']);
$directories = $dropdown->folderNames();
echo '<select>';
foreach ($directories as $directory):
echo "<option value=\"{$directory}\">{$directory}</option>";
endforeach;
echo '</select>';
В идеале вы должны иметь часть «примера использования» в другом файле. Этот файл представляет собой шаблон, который получает список $directories
, и шаблон просто должен его отобразить.