Hàm scandir()
trong PHP được sử dụng để liệt kê các tệp tin và thư mục trong một thư mục cụ thể. Hàm này trả về một mảng chứa tên của các tệp tin và thư mục theo thứ tự mà chúng được tìm thấy. Scandir()
cung cấp một cách tiện lợi để quét và truy cập các file và thư mục trong hệ thống file của server. Trong bài viết này, hãy cùng Vietnix tìm hiểu cách lấy tất cả các file từ thư mục hiện tại hoặc thư mục được chỉ định bằng cách sử dụng hàm scandir()
trong PHP.
Hàm scandir() là gì?
Hàm scandir()
trong PHP là một hàm có sẵn được sử dụng để trả về một mảng các file và folder trong thư mục đã chỉ định. Hàm này liệt kê các file và thư mục có trong một đường dẫn cụ thể. Thư mục và thứ tự sắp xếp của các file và thư mục được truyền dưới dạng tham số cho hàm scandir()
. Hàm trả về một mảng tên file nếu thành công hoặc FALSE nếu thất bại.
Cú pháp | scandir(directory, sorting_order, context); |
Tham số | directory : Đây là tham số bắt buộc chỉ định đường dẫn. sorting_order : Đây là tham số tùy chọn chỉ định thứ tự sắp xếp. Thứ tự tăng dần theo bảng chữ cái (0) là thứ tự sắp xếp mặc định. Nó có thể được đặt thành SCANDIR_SORT_DESCENDING hoặc 1 để sắp xếp theo thứ tự giảm dần theo bảng chữ cái hoặc SCANDIR_SORT_NONE để trả về kết quả chưa được sắp xếp. context : Đây là tham số tùy chọn này cho phép người dùng cung cấp đối tượng context cho hàm scandir() sử dụng. |
Giá trị trả về | Trả về một mảng tên file nếu thành công hoặc False nếu thất bại. |
Lỗi và ngoại lệ | Hàm scandir() đưa ra lỗi ở mức E_WARNING nếu mục tiêu được chỉ định không phải là thư mục.Thực hiện scandir() đệ quy trên một thư mục có nhiều file có thể sẽ làm chậm ứng dụng của bạn hoặc khiến mức tiêu thụ RAM tăng cao do kích thước lớn của mảng được tạo. |
Hướng tiếp cận | Để lấy tất cả các file từ thư mục cụ thể, người dùng chỉ cần chỉ định dường dẫn đầy đủ của file đó và giá trị này phải được lưu vào biến tên là $mydir. Tiếp theo dùng hàm scandir() dò các file trong thư mục hiện tại hoặc đã chỉ định, trả về mảng gồm file và thư mục. Theo mặc định, mảng này được căn chỉnh theo thứ tự tăng dần của bảng Alphabet; 0 là thứ tự mặc định; 1 là thứ thự giảm dần và SCANDIR_SORT_NONE là không sắp xếp thứ tự. |
Mọi người cũng xem:
Ví dụ minh hoạ hàm scandir() trong PHP
- Trả về mảng tên file theo thứ tự tăng dần:
<?php
// Specifying directory
$mydir = '/docs';
// Scanning files in a given directory in ascending order
$myfiles = scandir($mydir);
// Displaying the files in the directory
print_r($myfiles);
?>
Output như sau:
( [0] => . [1] => .. [2] => aboutus.php [3] => contact.php [4] => index.php [5] => terms.php )
- Trả về mảng theo thứ tự giảm dần:
<?php
// Specifying directory
$mydir = '/docs';
// Scanning files in a given directory in descending order
$myfiles = scandir($mydir, 1);
// Displaying the files in the directory
print_r($myfiles);
?>
Output như sau:
Array ( [0] => terms.php [1] => index.php [2] => contact.php [3] => aboutus.php [4] => .. [5] => . )
- Trả về mảng không có sắp xếp:
<?php
// Specifying directory
$mydir = '/docs';
// Scanning files in a given directory in unsorted order
$myfiles = scandir($mydir, SCANDIR_SORT_NONE);
// Displaying the files in the directory
print_r($myfiles);
?>
Output như sau:
Array
(
[0] => .
[1] => ..
[2] => contact.php
[3] => terms.php
[4] => index.php
[5] => aboutus.php
)
Lời kết
Vietnix hy vọng nội dung bài viết trên đã giúp bạn hiểu rõ hơn về hàm scandir()
trong PHP. Ngoài ra, bạn cũng có thể tham khảo thêm các bài viết khác như kiểu dữ liệu trong PHP hoặc tìm hiểu lệnh in ra màn hình trong PHP để hiểu hơn về lập trình, chúc bạn thành công!