如何使用php返回目录中文件的名称

时间:2015-11-29 14:21:50

标签: php

假设我在webhost上有一个名为sebis_files的文件夹,这个文件夹包含一些文件,可能是图片,文档......

我想在单独的页面上返回此文件夹的内容,例如:

$row = get dir host/sebis_files*//everything

for ( $row !== 0){ //for every valid file
   echo $row . "<br/>"; //return name of file
}

3 个答案:

答案 0 :(得分:1)

您可以使用opendirreaddir。这是一个细分:

为了安全起见,我们使用__DIR__来创建相对于当前脚本目录的路径:

$dir = __DIR__ . '/sebis_files'; 

接下来我们打开目录来读取它的条目。 我们调用readdir,它将返回'resource'对象,如果$dir不是可读目录,则调用false:

if ($dh = opendir($dir))
{

目录已成功打开。 我们现在在该目录上调用readdir。我们使用opendir的返回值,这是一个神秘的“资源”对象,它将让PH​​P知道我们正在阅读的目录。

每当我们打电话给readdir时,它都会给我们目录中的下一个条目。如果没有其他条目,readdir将返回false:

      while ( ($entry = readdir($dh)) !== false)
      {          

我们已经读了一个目录$entry$dir内的文件或子目录的名称。所以,它不是一个完整的路径名。让我们打印它的名字,以及它是一个目录还是一个文件。我们将使用is_fileis_dir,但我们需要传递完整路径名(因此为“$ dir / $ entry”):

          if ( is_dir( "$dir/$entry" ) )
              echo "Directory: $entry<br/>";
          else if ( is_file( "$dir/entry" ) )
              echo "File: $entry<br/>";
      }

我们完成了目录,让它关闭它以释放资源:

      closedir($dh);
 }

但如果$dir无法打开阅读怎么办?我们打印一个警告:

 else
     echo "<div class='warning'>cannot open directory!</div>";

答案 1 :(得分:1)

您需要查看this

    <?php
$dir = "/tmp";
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
    $files[] = $filename;
}

sort($files);

print_r($files);

rsort($files);

print_r($files);

?>

答案 2 :(得分:0)

您可以使用glob功能执行此操作:

$dir = "/your/dir/";

if(file_exists($dir))
{
    foreach (glob("$dir*") as $file) 
    {
        if(is_file($file))
        {
            echo basename($file) . "<br />";
        }
    }
}