您好,登錄后才能下訂單哦!
PHP中怎樣獲取目錄中的文件名,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
我們來看一下PHP中怎樣去獲取目錄下的文件相關知識。
我們已經了解了在PHP中怎樣去打開和關閉目錄,在關閉目錄之前會對目錄進行操作,其中常用到的操作就有獲取目錄中的文件和文件夾。
也就是說,想要了解怎樣去獲取目錄中的文件的話,首先還是得會打開和關閉目錄,因此opendir()
函數和closedir()
函數還不了解的可以點擊上方的連接進行學習。下面我們就來看一下PHP中怎樣才能完成目錄下文件的獲取吧。
我們在PHP中可以通過readdir()
函數和scandir()
函數來完成獲取目錄中文件名的操作。
readdir()
函數獲取文件中的下一個文件名
readdir()
函數是一個簡單的操作,說它簡單是因為當函數執行成功之后,它能夠返回通過opendir()
函數打開目錄中的一個文件或者目錄名稱;如果函數沒有執行成功,返回的結果就是flase
。
readdir()函數的基本語法格式如下:
readdir([resource $dir_handle])
其中需要注意的是:$dir_handle
是個可選參數,當填寫時,表示的就是通過opendir()
函數打開的目錄參數。
接下來我們通過示例來看一下readdir()函數的使用,示例如下:
<?php $dir = 'D:'; if(is_dir($dir)){ $info = opendir($dir); $file = readdir($info); echo $file.'<br>'; closedir($info); } ?>
輸出結果:
上述示例中這種寫法一般是不會用到的,一般想要通過readdir()函數獲取所有的目錄下的文件,需要通過while
循環來進行獲取,示例如下:
<?php $dir = 'D:'; if(is_dir($dir)){ $info = opendir($dir); while (($file = readdir($info)) !== false) { echo $file.'<br>'; } closedir($info); } ?>
輸出結果:
如此我們便通過readdir()函數與while循環配合完成了對目標目錄中文件名的獲取。這就是readdir()函數的應用,接下來我們看一下另外一種方法,也就是scandir()
函數。
scandir()
函數,數組形式返回目錄文件名
上文中我們了解了readdir()
函數可以獲取目標目錄內的文件名,其中配合while循環可以簡單直接的得到目錄下的文件或者目錄名。接下來要說的scandir()函數與readdir()函數有一些不同。
readdir()
函數一次只能返回一個文件名,但是scandir()
函數執行成功之后能夠返回目標目錄內所有的文件名和目錄名;
readdir
返回的結果直接就是文件的名稱,scandir
的返回結果也是文件的名稱但是是以數組的形式返回的結果;
readdir
函數沒有執行成功的話返回的結果是flase,scandir
函數沒有執行成功時返回的加過也是flase但是同時也會有錯誤信息。
下面我們來看一下scandir()函數的基本語法,示例如下:
scandir(string $directory[, int $sorting_order[, resource $context]])
其中需要注意的是:$directory
表示要讀取的目錄;當$sorting_order
的參數設置為SCANDIR_SORT_DESCENDING
或者 1
的時候,返回的結果也就是文件名,它們的排列順序是按著字母降序排列。當$sorting_order的參數設置為SCANDIR_SORT_NONE
的時候,返回的結果就是未排列的結果,其中這個參數是個可選參數。
接下來我們通過示例來看一下scandir()函數的應用,示例如下:
<?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()函數來獲取目錄路徑為“D:\phpstudy_pro\WWW”的目錄內文件名,然后通過不同的參數來實現不同的字母順序排列,輸出結果如下:
通過上述示例就能夠看出scandir()函數能夠通過數組的形式返回目標目錄中的文件名,并且函數內$sorting_order的參數不同返回結果的排序也就不同。
看完上述內容,你們掌握PHP中怎樣獲取目錄中的文件名的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。