PHP自訂遍曆目錄下所有檔案dir(),readdir()函數

來源:互聯網
上載者:User

   方法一:使用dir()遍曆目錄

  dir()函數,成功時返回Directory類執行個體

  PHP dir() 文法格式為:

  dir(directory);//directory為需要顯示檔案名稱的目錄名稱,可包含路徑資訊

  PHP dir() 用法舉例:列出upload目錄下的所有檔案名稱:

 代碼如下  
<?php
$dir = @ dir("upload");//開啟upload目錄;“@”可屏蔽錯誤資訊,因有時候需要顯示檔案的目錄內並沒有檔案,此時可能會報出錯誤,用“@”隱藏掉錯誤
//列舉upload目錄中的所有檔案
while (($file = $dir->read()) !== false)
{
  echo "檔案名稱: " . $file . "<br />";
}
$dir->close();
?>

  輸出結果為:

  檔案名稱: .

  檔案名稱: ..

  檔案名稱: logo.gif

  檔案名稱: arrow.gif

  檔案名稱: bg.gif

  例子

 代碼如下  

function tree($dir)
{
    $mydir = dir($dir);
    while($file = $mydir->read())
    {
        if($file != '.' && $file != '..')
        {
            if(is_dir("$dir/$file"))
            {
                echo '目錄名:'.$dir.DIRECTORY_SEPARATOR.'<font color="red">'.$file.'</font><br />';
                tree("$dir/$file");
            }else{
                echo '檔案名稱:'.$dir.DIRECTORY_SEPARATOR.$file.'<br />';
            }
        }
    }
    $mydir->close();
}
tree('./phpmyadmin');

  方法二 使用readir()遍曆目錄

  定義和用法

  readdir() 函數返回由 opendir() 開啟的目錄控制代碼中的條目。

  若成功,則該函數返回一個檔案名稱,否則返回 false。

  文法

  readdir(dir_stream)

  例子

 代碼如下  

header('content-type:text/html;charset=utf-8');

function listDir($dir)
{
    if(is_dir($dir))
    {
        if($handle = opendir($dir))
        {
            while($file = readdir($handle))
            {
                if($file != '.' && $file != '..')
                {
                    if(is_dir($dir.DIRECTORY_SEPARATOR.$file))
                    {
                        echo '目錄名:'.$dir.DIRECTORY_SEPARATOR.'<font color="red">'.$file.'</font><br />';
                        listDir($dir.DIRECTORY_SEPARATOR.$file);
                    }else{
                        echo '檔案名稱:'.$dir.DIRECTORY_SEPARATOR.$file.'<br />';
                    }
                }
            }
        }
        closedir($handle);
    }else{
        echo '非有效目錄!';
    }
}
listDir('./phpmyadmin');
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.