scandir

(PHP 5, PHP 7, PHP 8)

scandir列出指定路徑中的文件和目錄

說明

scandir(string $directory, int $sorting_order = ?, resource $context = ?): array

返回一個(gè) array,包含有 directory 中的文件和目錄。

參數(shù)

directory

要被瀏覽的目錄

sorting_order

默認(rèn)的排序順序是按字母升序排列。如果使用了可選參數(shù) sorting_order(設(shè)為 1),則排序順序是按字母降序排列。

context

context 參數(shù)的說明見手冊(cè)中的 Streams API 一章。

返回值

成功則返回包含有文件名的 array,如果失敗則返回 false。如果 directory 不是個(gè)目錄,則返回布爾值 false 并生成一條 E_WARNING 級(jí)的錯(cuò)誤。

更新日志

版本 說明
5.4.0 sorting_order now accepts constants. Any nonzero value caused descending order in previous versions.

范例

示例 #1 一個(gè)簡(jiǎn)單的 scandir() 例子

<?php
$dir    
'/tmp';
$files1 scandir($dir);
$files2 scandir($dir1);

print_r($files1);
print_r($files2);
?>

以上例程的輸出類似于:

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

示例 #2 scandir() 在 PHP 4 中的實(shí)現(xiàn)

<?php
$dir 
"/tmp";
$dh  opendir($dir);
while (
false !== ($filename readdir($dh))) {
    
$files[] = $filename;
}

sort($files);

print_r($files);

rsort($files);

print_r($files);

?>

以上例程的輸出類似于:

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

注釋

小技巧

如已啟用fopen 包裝器,在此函數(shù)中, URL 可作為文件名。關(guān)于如何指定文件名詳見 fopen()。各種 wapper 的不同功能請(qǐng)參見 支持的協(xié)議和封裝協(xié)議,注意其用法及其可提供的預(yù)定義變量。

參見

  • opendir() - 打開目錄句柄
  • readdir() - 從目錄句柄中讀取條目
  • glob() - 尋找與模式匹配的文件路徑
  • is_dir() - 判斷給定文件名是否是一個(gè)目錄
  • sort() - 對(duì)數(shù)組升序排序