PHP - Просмотр каталога - PullRequest
       26

PHP - Просмотр каталога

0 голосов
/ 15 февраля 2011

Итак, я работаю над простой страницей администратора для моего веб-сервера.Я пытаюсь создать простой файловый менеджер, который перечисляет каталоги / файлы и позволяет вам изменять каталог / редактировать файлы.У меня пара проблем, хотя.Моя первая проблема заключается в том, что он просто показывает файлы и папки, но не различает их.Как будто я хочу, чтобы папки имели / перед ними, чтобы администратор знал, что это папка, а не файл.Кроме того, у меня проблема при попытке изменить каталоги.Если я перехожу на любой каталог, он не будет работать.Вот мой текущий код:

<?php
echo '
<form name="read" method="POST">
Directory: <input type="text" name="read" />
<input type="submit" value="Go" />
</form>';
$maindir = "/home/amartin/public_html";
$no = "No access";
$dir = $_POST['read'];
if($dir == "/")
{
  echo $no;
  die();
}
elseif($dir == "/home")
{
  echo $no;
  die();
}
elseif($dir == "/home/")
{
  echo $no;
  die();
}
elseif($dir == "/home/amartin")
{
  echo $no;
  die();
}
elseif($dir == "/home/amartin/")
{
  echo $no;
  die();
}
else {
  $dir = $maindir;
}
echo "Viewing directory: " . $dir;
$folders = scandir($dir);
chdir($dir);
foreach($folders as $ind_file)
{
echo $ind_file.'<br/>';
}
?>

1 Ответ

0 голосов
/ 15 февраля 2011

Вы можете использовать функцию is_dir , чтобы проверить, указывает ли путь к каталогу.

Кроме того, вы можете использовать регулярные выражения, чтобы упростить проверку, например ::

if (preg_match('~/home(/amartin)?/?~', $dir))

и т.д.

Вы можете проверить свой текущий рабочий каталог с помощью getcwd () и изменить его с помощью chdir. Используете ли вы относительные пути при смене каталогов?

...