溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP中怎樣獲取目錄中的文件名

發(fā)布時(shí)間:2021-11-02 13:02:17 來源:億速云 閱讀:270 作者:柒染 欄目:編程語言

PHP中怎樣獲取目錄中的文件名,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

我們來看一下PHP中怎樣去獲取目錄下的文件相關(guān)知識。

我們已經(jīng)了解了在PHP中怎樣去打開和關(guān)閉目錄,在關(guān)閉目錄之前會對目錄進(jìn)行操作,其中常用到的操作就有獲取目錄中的文件和文件夾。

也就是說,想要了解怎樣去獲取目錄中的文件的話,首先還是得會打開和關(guān)閉目錄,因此opendir() 函數(shù)和closedir()函數(shù)還不了解的可以點(diǎn)擊上方的連接進(jìn)行學(xué)習(xí)。下面我們就來看一下PHP中怎樣才能完成目錄下文件的獲取吧。

我們在PHP中可以通過readdir()函數(shù)和scandir()函數(shù)來完成獲取目錄中文件名的操作。

readdir()函數(shù)獲取文件中的下一個文件名

readdir()函數(shù)是一個簡單的操作,說它簡單是因?yàn)楫?dāng)函數(shù)執(zhí)行成功之后,它能夠返回通過opendir()函數(shù)打開目錄中的一個文件或者目錄名稱;如果函數(shù)沒有執(zhí)行成功,返回的結(jié)果就是flase

readdir()函數(shù)的基本語法格式如下:

readdir([resource $dir_handle])

其中需要注意的是:$dir_handle 是個可選參數(shù),當(dāng)填寫時(shí),表示的就是通過opendir()函數(shù)打開的目錄參數(shù)。

接下來我們通過示例來看一下readdir()函數(shù)的使用,示例如下:

<?php
    $dir = 'D:';
    if(is_dir($dir)){
        $info = opendir($dir);
        $file = readdir($info);
        echo $file.'<br>';
        closedir($info);
    }
?>

輸出結(jié)果:

PHP中怎樣獲取目錄中的文件名

上述示例中這種寫法一般是不會用到的,一般想要通過readdir()函數(shù)獲取所有的目錄下的文件,需要通過while循環(huán)來進(jìn)行獲取,示例如下:

<?php
    $dir = 'D:';
    if(is_dir($dir)){
        $info = opendir($dir);
        while (($file = readdir($info)) !== false) {
            echo $file.'<br>';
        }
        closedir($info);
    }
?>

輸出結(jié)果:

PHP中怎樣獲取目錄中的文件名

如此我們便通過readdir()函數(shù)與while循環(huán)配合完成了對目標(biāo)目錄中文件名的獲取。這就是readdir()函數(shù)的應(yīng)用,接下來我們看一下另外一種方法,也就是scandir()函數(shù)。

scandir()函數(shù),數(shù)組形式返回目錄文件名

上文中我們了解了readdir()函數(shù)可以獲取目標(biāo)目錄內(nèi)的文件名,其中配合while循環(huán)可以簡單直接的得到目錄下的文件或者目錄名。接下來要說的scandir()函數(shù)與readdir()函數(shù)有一些不同。

  • readdir()函數(shù)一次只能返回一個文件名,但是scandir()函數(shù)執(zhí)行成功之后能夠返回目標(biāo)目錄內(nèi)所有的文件名和目錄名;

  • readdir返回的結(jié)果直接就是文件的名稱,scandir的返回結(jié)果也是文件的名稱但是是以數(shù)組的形式返回的結(jié)果;

  • readdir函數(shù)沒有執(zhí)行成功的話返回的結(jié)果是flase,scandir函數(shù)沒有執(zhí)行成功時(shí)返回的加過也是flase但是同時(shí)也會有錯誤信息。

下面我們來看一下scandir()函數(shù)的基本語法,示例如下:

scandir(string $directory[, int $sorting_order[, resource $context]])

其中需要注意的是:$directory表示要讀取的目錄;當(dāng)$sorting_order的參數(shù)設(shè)置為SCANDIR_SORT_DESCENDING 或者 1的時(shí)候,返回的結(jié)果也就是文件名,它們的排列順序是按著字母降序排列。當(dāng)$sorting_order的參數(shù)設(shè)置為SCANDIR_SORT_NONE的時(shí)候,返回的結(jié)果就是未排列的結(jié)果,其中這個參數(shù)是個可選參數(shù)。

接下來我們通過示例來看一下scandir()函數(shù)的應(yīng)用,示例如下:

<?php
    $dir = 'D:\phpstudy_pro\WWW';
    if(is_dir($dir)){
        $arr1 = scandir($dir);
        $arr2 = scandir($dir, 1);
    }
    echo "<pre>";
    print_r($arr1);
    print_r($arr2);
?>

上述示例中,目的是想要通過scandir()函數(shù)來獲取目錄路徑為“D:\phpstudy_pro\WWW”的目錄內(nèi)文件名,然后通過不同的參數(shù)來實(shí)現(xiàn)不同的字母順序排列,輸出結(jié)果如下:

PHP中怎樣獲取目錄中的文件名

通過上述示例就能夠看出scandir()函數(shù)能夠通過數(shù)組的形式返回目標(biāo)目錄中的文件名,并且函數(shù)內(nèi)$sorting_order的參數(shù)不同返回結(jié)果的排序也就不同。

看完上述內(nèi)容,你們掌握PHP中怎樣獲取目錄中的文件名的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI