PHP - 目录查看器

时间:2011-02-15 20:31:11

标签: php file directory admin file-manipulation

所以我正在为我的Web服务器创建一个简单的管理员页面。我正在尝试创建一个简单的文件管理器,列出目录/文件,并允许您更改目录/编辑文件。我有几个问题。我的第一个问题是它只是显示文件和文件夹,但不会区分它们。就像我希望文件夹在它们前面有/所以管理员知道它是文件夹而不是文件。此外,我在尝试更改目录时遇到问题。如果我更改到任何目录,它将无法正常工作。这是我目前的代码:

<?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 :(得分:0)

您可以使用is_dir功能检查路径是否指向目录。

此外,您可以使用正则表达式来简化检查,例如:

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

您可以使用getcwd()检查当前的工作目录,并使用chdir进行更改。在更改目录时是否使用相对路径?