技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運營

贊助商

分類目錄

贊助商

最新文章

搜索

使用scandir()而不是readdir()遍歷目錄文件(夾)

作者:admin    時間:2021-4-22 21:23:26    瀏覽:

在使用PHP編程遍歷目錄文件時,我們一般可以使用readdir()scandir()來實現(xiàn),不過本文要說的是,盡量使用scandir()而不是readdir()遍歷目錄文件,理由是scandir()用到的代碼量少很多。

 使用scandir()而不是readdir()遍歷目錄文件
使用scandir()而不是readdir()遍歷目錄文件

readdir()遍歷目錄文件

下面使用readdir()函數(shù)的代碼可以獲得某一特定目錄的所有文件、文件夾,包含符號點(.)和兩點(..)。

if ($handle = opendir('.')) {

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

        if ($entry != "." && $entry != "..") {

            echo "$entry\n";
        }
    }

    closedir($handle);
}

上述代碼可獲得同級目錄里的所有文件、文件夾,包含符號點(.)和兩點(..)。

scandir()遍歷目錄文件

1、下面使用scandir()函數(shù)的代碼可以獲得某一特定目錄的所有文件、文件夾,包含符號點(.)和兩點(..)。

$path    = 'images';
$files   = scandir($path);

注意,這里返回的是一個數(shù)組$files,我們可以用print_r($files);把數(shù)組打印出來。而要讀取數(shù)組里的元素,我們可以用如下代碼。

for ($x = 0; $x < count($files); $x++) {
echo $files[$x]."\n";
}

2、如果想在scandir()函數(shù)獲得的數(shù)組中不含符號點(.)和兩點(..),那么可以用如下簡潔代碼。

$files2 = array_diff(scandir($path), array('.', '..'));

3、scandir()函數(shù)獲得的數(shù)組元素默認排列是升序,如果想要降序排列,那么可以用如下代碼。

$files   = scandir($path,1);

4、關(guān)于返回值

若成功則返回文件和目錄的數(shù)組。失敗則返回 FALSE。如果 directory 不是目錄,則拋出 E_WARNING 級別的錯誤。

標簽: scandir  readdir  
相關(guān)文章
    x
    • 站長推薦
    /* 左側(cè)顯示文章內(nèi)容目錄 */