Làm cách nào để đọc tất cả các tệp trong một thư mục trong PHP?

Trong bài viết này, chúng ta sẽ xem cách lấy tất cả các tệp 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() trong PHP là một hàm sẵn có được sử dụng để trả về một mảng các tệp và thư mục của thư mục đã chỉ định. Hàm scandir() liệt kê các tệp và thư mục có trong một đường dẫn đã chỉ định. Thư mục, hành vi truyền phát và thứ tự sắp xếp của các tệp và thư mục được truyền dưới dạng tham số cho hàm scandir() và nó trả về một mảng tên tệp nếu thành công hoặc sai nếu không thành công.  

cú pháp

scandir(directory, sorting_order, context);

Thông số. Hàm scandir() trong PHP chấp nhận 3 tham số được liệt kê bên dưới

  • danh mục. Nó là một tham số bắt buộc chỉ định đường dẫn
  • sắp xếp_thứ tự. Nó là một 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
  • bối cảnh. Đây là một tham số tùy chọn chỉ định hành vi của luồng

Giá trị trả về. Nó trả về một mảng tên tệp khi thành công hoặc sai khi thất bại

lỗi và ngoại lệ

  • Hàm scandir() đưa ra lỗi ở mức E_WARNING nếu thư mục được chỉ định không phải là thư mục
  • Thực hiện quét đệ quy trên một thư mục có nhiều tệp 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

Tiếp cận. Để lấy tất cả các tệp từ thư mục cụ thể, chúng ta cần chỉ định đường dẫn đầy đủ của tệp và lưu trữ giá trị đường dẫn trong biến là $mydir. Sau đó, sử dụng hàm scandir() sẽ quét các tệp trong một thư mục hiện tại hoặc cụ thể và trả về một mảng các tệp và thư mục. Theo mặc định, nó sẽ được căn chỉnh theo thứ tự tăng dần theo thứ tự bảng chữ cái & 0 là thứ tự sắp xếp mặc định, 1 để sắp xếp theo thứ tự giảm dần theo thứ tự bảng chữ cái và SCANDIR_SORT_NONE  cho thứ tự chưa sắp xếp

ví dụ 1. Ví dụ dưới đây minh họa hàm scandir() sẽ quét các tệp và giá trị trả về sẽ theo thứ tự tăng dần

PHP




(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
6

(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7

(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7____29

(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
1
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
0
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
1
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
2

 

(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7____14

(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
6
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
1
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
9

 

(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7____81

(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7
 Array
(
[0] => terms.php
[1] => index.php 
[2] => contact.php
[3] => aboutus.php
[4] => ..
[5] => .
)
3____16
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
9

 Array
(
[0] => terms.php
[1] => index.php 
[2] => contact.php
[3] => aboutus.php
[4] => ..
[5] => .
)
6

đầu ra

(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)

ví dụ 2. Ví dụ này minh họa hàm scandir() sẽ quét các tệp và giá trị trả về sẽ theo thứ tự giảm dần

PHP




(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
6

(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7

(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7____29

(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
1
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
0
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
1
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
2

 

(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7____177

(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7______16
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7____31
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
62

 

(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7____81

(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
7
 Array
(
[0] => terms.php
[1] => index.php 
[2] => contact.php
[3] => aboutus.php
[4] => ..
[5] => .
)
3____16
(
[0] => .
[1] => ..
[2] => aboutus.php
[3] => contact.php
[4] => index.php 
[5] => terms.php
)
9

 Array
(
[0] => terms.php
[1] => index.php 
[2] => contact.php
[3] => aboutus.php
[4] => ..
[5] => .
)
6

đầu ra

________số 8

ví dụ 3. Ví dụ này minh họa hàm scandir() sẽ quét các tệp và giá trị trả về sẽ theo thứ tự chưa sắp xếp

Làm cách nào để đọc tất cả các tệp trong một thư mục trong PHP?

Để đọc tất cả các tệp trong một thư mục cụ thể bằng PHP, chúng ta có thể sử dụng hàm glob() . Chức năng này cho phép đọc bất kỳ tệp (tên đường dẫn)/thư mục con/cả trong một thư mục cụ thể (trong đó các tệp đang được tìm kiếm).

Làm cách nào để tìm nạp tệp từ một thư mục trong PHP?

Hàm PHP readdir() .

__ thư mục __ PHP là gì?

PHP đặt hằng số ma thuật __DIR__ thành đường dẫn tuyệt đối của thư mục chứa tập lệnh PHP hiện tại đang được chạy . Bạn cũng có thể tự xác định giá trị tương tự bằng cách sử dụng hàm dirname trên hằng số ma thuật __FILE__. Dirname trả về thư mục mẹ của bất kỳ tệp hoặc thư mục nào.

gglo() trong PHP là gì?

Hàm glob() trả về một mảng tên tệp hoặc thư mục khớp với một mẫu đã chỉ định .