【问题标题】:How to get name of directory (NOT subdirectory) and filename with PHP?如何使用 PHP 获取目录名称(不是子目录)和文件名?
【发布时间】:2013-07-23 07:26:56
【问题描述】:

我有以下文件夹结构。我只想获取目录(不是子目录)和文件的名称。我怎么能用 PHP 做到这一点?谢谢。

Main Directory
 Directory1
  SubDirectory1
   File1
   File2
  SubDirectory2
   File3
   File4
 Directory2
  SubDirectory3
   File5
   File6
  SubDirectory4
   File7
   File8

结果应该是这样的:

Directory: Directory1
File: File1
File: File2

Directory: Directory2
File: File3
File: File4

【问题讨论】:

    标签: php list directory subdirectory


    【解决方案1】:

    试试 DirectoryIterator,这里有一个例子

    $path = dirname(dirname(__FILE__));
    $it = new DirectoryIterator($path);
    while($it->valid()){
        /*....*/
        echo $it->getPathname().'">'.$it->getBasename();
        $it->next();//i forgot this just now
    }
    

    【讨论】:

    • 我刚刚忘记了 $it->next()。 $it->next() 表示前进到下一个 DirectoryIterator 项。
    • 我应该为 $path = dirname(dirname(FILE)); 写什么或者我需要保留它并将php文件移动到主目录?你觉得是吗?
    • 两者都可以。如果你不想将php文件移动到主目录,使用$path = dirname(dirname('/*你的主目录路径*/')),例如, $path = dirname(dirname('D:/Programs/'))
    【解决方案2】:
    function display_directory($path){
        $dir_handle = @opendir($path) or die("unable to open $path");
        while ($file = readdir($dir_handle)){
          if($file == "." || $file == "..")
            continue;
          if(is_dir($file))
            echo "directory: $file";
          else
            echo "file: $file";
        }
    }
    

    【讨论】:

    • 它只是给出目录的名称而不是文件名。谢谢
    • 不,它给出了目录和文件名的名称。返回并查看第 8 行。
    猜你喜欢
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    相关资源
    最近更新 更多