
- PHP 教程
- PHP - 首頁
- PHP - 簡介
- PHP - 安裝
- PHP - 歷史
- PHP - 特性
- PHP - 語法
- PHP - Hello World
- PHP - 註釋
- PHP - 變數
- PHP - Echo/Print
- PHP - var_dump
- PHP - $ 和 $$ 變數
- PHP - 常量
- PHP - 魔術常量
- PHP - 資料型別
- PHP - 型別轉換
- PHP - 型別混合
- PHP - 字串
- PHP - 布林值
- PHP - 整數
- PHP - 檔案與 I/O
- PHP - 數學函式
- PHP - Heredoc 和 Nowdoc
- PHP - 複合型別
- PHP - 檔案包含
- PHP - 日期與時間
- PHP - 標量型別宣告
- PHP - 返回型別宣告
- PHP 運算子
- PHP - 運算子
- PHP - 算術運算子
- PHP - 比較運算子
- PHP - 邏輯運算子
- PHP - 賦值運算子
- PHP - 字串運算子
- PHP - 陣列運算子
- PHP - 條件運算子
- PHP - 展開運算子
- PHP - 空值合併運算子
- PHP - 恆等比較運算子
- PHP 控制語句
- PHP - 決策制定
- PHP - If...Else 語句
- PHP - Switch 語句
- PHP - 迴圈型別
- PHP - For 迴圈
- PHP - Foreach 迴圈
- PHP - While 迴圈
- PHP - Do...While 迴圈
- PHP - Break 語句
- PHP - Continue 語句
- PHP 函式
- PHP - 函式
- PHP - 函式引數
- PHP - 按值傳遞
- PHP - 按引用傳遞
- PHP - 預設引數
- PHP - 具名引數
- PHP - 可變引數
- PHP - 返回值
- PHP - 傳遞函式
- PHP - 遞迴函式
- PHP - 型別提示
- PHP - 變數作用域
- PHP - 嚴格型別
- PHP - 匿名函式
- PHP - 箭頭函式
- PHP - 可變函式
- PHP - 區域性變數
- PHP - 全域性變數
- PHP 超全域性變數
- PHP - 超全域性變數
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP 檔案處理
- PHP - 檔案處理
- PHP - 開啟檔案
- PHP - 讀取檔案
- PHP - 寫入檔案
- PHP - 檔案是否存在
- PHP - 下載檔案
- PHP - 複製檔案
- PHP - 追加檔案
- PHP - 刪除檔案
- PHP - 處理 CSV 檔案
- PHP - 檔案許可權
- PHP - 建立目錄
- PHP - 列出檔案
- 面向物件 PHP
- PHP - 面向物件程式設計
- PHP - 類和物件
- PHP - 建構函式和解構函式
- PHP - 訪問修飾符
- PHP - 繼承
- PHP - 類常量
- PHP - 抽象類
- PHP - 介面
- PHP - 特性
- PHP - 靜態方法
- PHP - 靜態屬性
- PHP - 名稱空間
- PHP - 物件迭代
- PHP - 封裝
- PHP - Final 關鍵字
- PHP - 過載
- PHP - 克隆物件
- PHP - 匿名類
- PHP Web 開發
- PHP - Web 概念
- PHP - 表單處理
- PHP - 表單驗證
- PHP - 表單郵件/URL
- PHP - 完整表單
- PHP - 檔案包含
- PHP - GET 和 POST
- PHP - 檔案上傳
- PHP - Cookie
- PHP - Session
- PHP - Session 選項
- PHP - 傳送郵件
- PHP - 淨化輸入
- PHP - Post-Redirect-Get (PRG)
- PHP - 快閃記憶體訊息
- PHP 高階
- PHP - MySQL
- PHP.INI 檔案配置
- PHP - 陣列解構
- PHP - 編碼規範
- PHP - 正則表示式
- PHP - 錯誤處理
- PHP - Try...Catch
- PHP - Bug 除錯
- PHP - 針對 C 開發人員
- PHP - 針對 PERL 開發人員
- PHP - 框架
- PHP - Core PHP 與框架
- PHP - 設計模式
- PHP - 過濾器
- PHP - JSON
- PHP - 異常
- PHP - 特殊型別
- PHP - 雜湊
- PHP - 加密
- PHP - is_null() 函式
- PHP - 系統呼叫
- PHP - HTTP 認證
- PHP - 交換變數
- PHP - Closure::call()
- PHP - 過濾後的 unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - 期望
- PHP - Use 語句
- PHP - 整數除法
- PHP - 已棄用的功能
- PHP - 已刪除的擴充套件和 SAPI
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI 程序
- PHP - PDO 擴充套件
- PHP - 內建函式
- PHP 有用資源
- PHP - 速查表
- PHP - 問答
- PHP - 快速指南
- PHP - 線上編譯器
- PHP - 有用資源
- PHP - 討論
PHP scandir() 函式
PHP 的 scandir() 函式用於獲取當前目錄或指定目錄中的所有檔案。此函式返回給定目錄中的檔案和目錄的陣列。
目錄、流行為和檔案和目錄的排序順序作為引數傳遞給 scandir() 函式,該函式在成功時返回檔名陣列,在失敗時返回 false。
預設情況下,排序順序為按字母順序升序。如果可選的 sorting_order 設定為 SCANDIR_SORT_DESCENDING,則排序順序為按字母順序降序。如果使用 SCANDIR_SORT_NONE,則結果為未排序。
語法
以下是 PHP Directory scandir() 函式的語法:
array scandir ( string $directory [, int $sorting_order [, resource $context]] );
引數
下面列出了使用 scandir() 函式所需的引數:
序號 | 引數及說明 |
---|---|
1 |
directory(必需) 將要掃描的目錄。 |
2 |
sorting_order(可選) 指定排序順序。預設為 0(升序)。如果設定為 1,則表示降序。 |
3 |
context(可選) 指定目錄控制代碼的上下文。上下文是一組可以修改流行為的選項。 |
返回值
成功時返回檔名陣列,失敗時返回 FALSE。
PHP 版本
scandir() 函式在 PHP 4 核心版本中引入,並且與 PHP 5、PHP 7 和 PHP 8 相容。
示例
我們將使用 PHP Directory scandir() 函式列出指定目錄路徑中存在的所有檔案和目錄。
程式將按升序列印內容,然後按降序列印內容。
<?php $dir = '/newfolder'; $files1 = scandir($dir); $files2 = scandir($dir, 1); print_r($files1); print_r($files2); ?>
輸出
這將產生以下結果:
Array ( [0] => . [1] => .. [2] => abc.php [3] => bbc.txt [4] => somedir ) Array ( [0] => somedir [1] => indiabbc.txt [2] => status999.php [3] => .. [4] => . )
示例
在下面的 PHP 程式碼中,我們將僅使用 scandir() 函式及其名為 SCANDIR_SORT_DESCENDING 的引數來按降序列出內容。
<?php $directory = "/Applications/XAMPP/xamppfiles/htdocs/mac"; $contents = scandir($directory, SCANDIR_SORT_DESCENDING); foreach ($contents as $item) { echo $item . "<br>"; } ?>
輸出
這將產生以下結果:
new dir myfile.txt my.php logo.gif index.php images image.gif .DS_Store .. .
示例
在這裡,我們將使用 scandir() 函式掃描目錄,並藉助 is_dir() 函式驗證給定路徑中可用的目錄,並列印其名稱。
<?php // enter your working directory path here $directory = "/Applications/XAMPP/xamppfiles/htdocs/mac"; // now scan the directory $items = scandir($directory); // print the directory here using foreach loop echo "Directories are: " . "<br>"; foreach ($items as $item) { $dir = "$directory/$item"; if (is_dir($dir)) { echo $item . "<br>"; } } ?>
輸出
這將導致以下結果:
Directories are: . .. images new dir
示例
在下面的 PHP 程式碼中,我們將使用 scandir() 函式掃描目錄,並藉助 is_file() 函式驗證給定路徑中可用的檔案,並顯示其名稱。
<?php // enter your working directory path here $directory = "/Applications/XAMPP/xamppfiles/htdocs/mac"; $items = scandir($directory); echo "Files are: " . "<br>"; foreach ($items as $item) { $filePath = $directory . '/' . $item; if (is_file($filePath)) { echo $item . "<br>"; } } ?>
輸出
此 PHP 程式碼的結果為:
Files are: .DS_Store image.gif index.php logo.gif my.php myfile.txt
注意
- scandir() 返回當前目錄 (.) 和父目錄 (..)。
- 傳遞給 scandir() 的不正確的目錄路徑會生成 E_WARNING 錯誤並返回 FALSE。
- scandir() 是耗時的 readdir() 方法的較短替代方法,後者一次讀取一個目錄條目。
- 可以使用 is_file() 函式將目錄條目限制為僅檔案。
- 使用 is_dir() 函式將目錄與目錄條目分開。
- 使用 array_diff() 函式從結果陣列中刪除條目。
總結
PHP 中的 scandir() 函式可用於列出指定目錄內的檔案和目錄。它易於使用,並提供可變的結果排序。
php_function_reference.htm
廣告