Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-目录查看器_Php_File_Directory_Admin_File Manipulation - Fatal编程技术网

PHP-目录查看器

PHP-目录查看器,php,file,directory,admin,file-manipulation,Php,File,Directory,Admin,File Manipulation,因此,我正在为我的web服务器开发一个简单的管理员页面。我正在尝试创建一个简单的文件管理器,它列出目录/文件,并允许您更改目录/编辑文件。不过我有几个问题。我的第一个问题是,它只显示文件和文件夹,但无法区分它们。就像我希望文件夹前面有一个/那样管理员知道它是一个文件夹而不是一个文件。另外,我在尝试更改目录时遇到问题。如果我换到任何目录,它都不会工作。这是我目前的代码: <?php echo ' <form name="read" method="POST"> Directory

因此,我正在为我的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/>';
}
?>
您可以使用该函数检查路径是否指向目录

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

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


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

is\u dir-说明文件名是否为目录目录目录实际上是文件,但如何在代码中使用is\u dir?我很困惑我该怎么做。你也可以用die$no;而不是echo$no;死亡但这取决于你的编程风格。我更喜欢在没有任何输出时使用exit停止脚本。