Php đọc tệp từ thư mục

Trong chương trước bạn đã học cách làm việc với tệp trong PHP. Tương tự, PHP cũng cho phép bạn làm việc với các thư mục trên hệ thống tệp, chẳng hạn, bạn có thể mở một thư mục và đọc nội dung của nó, tạo hoặc xóa một thư mục, liệt kê tất cả các tệp trong thư mục, v.v.

Tạo một thư mục mới

Bạn có thể tạo một thư mục mới và trống bằng cách gọi hàm PHP

 0){
            // Loop through retuned array
            foreach($files as $file){
                if(is_file("$path/$file")){
                    // Display filename
                    echo $file . "
"; } else if(is_dir("$path/$file")){ // Recursively call the function if directories found outputFiles("$path/$file"); } } } else{ echo "ERROR: No files found in the directory."; } } else { echo "ERROR: The directory does not exist."; } } // Call the function outputFiles("mydir"); ?>
4 với đường dẫn và tên của thư mục sẽ được tạo, như trong ví dụ bên dưới

Để làm cho hàm

 0){
            // Loop through retuned array
            foreach($files as $file){
                if(is_file("$path/$file")){
                    // Display filename
                    echo $file . "
"; } else if(is_dir("$path/$file")){ // Recursively call the function if directories found outputFiles("$path/$file"); } } } else{ echo "ERROR: No files found in the directory."; } } else { echo "ERROR: The directory does not exist."; } } // Call the function outputFiles("mydir"); ?>
4 hoạt động, các thư mục mẹ trong tham số đường dẫn thư mục phải tồn tại, ví dụ: nếu bạn chỉ định đường dẫn thư mục là
 0){
            // Loop through retuned array
            foreach($files as $file){
                if(is_file("$path/$file")){
                    // Display filename
                    echo $file . "
"; } else if(is_dir("$path/$file")){ // Recursively call the function if directories found outputFiles("$path/$file"); } } } else{ echo "ERROR: No files found in the directory."; } } else { echo "ERROR: The directory does not exist."; } } // Call the function outputFiles("mydir"); ?>
6 thì phải tồn tại
 0){
            // Loop through retuned array
            foreach($files as $file){
                if(is_file("$path/$file")){
                    // Display filename
                    echo $file . "
"; } else if(is_dir("$path/$file")){ // Recursively call the function if directories found outputFiles("$path/$file"); } } } else{ echo "ERROR: No files found in the directory."; } } else { echo "ERROR: The directory does not exist."; } } // Call the function outputFiles("mydir"); ?>
7 nếu không PHP sẽ tạo ra lỗi


Sao chép tệp từ vị trí này sang vị trí khác

Bạn có thể sao chép tệp từ vị trí này sang vị trí khác bằng cách gọi hàm PHP

 0){
            // Loop through retuned array
            foreach($files as $file){
                if(is_file("$path/$file")){
                    // Display filename
                    echo $file . "
"; } else if(is_dir("$path/$file")){ // Recursively call the function if directories found outputFiles("$path/$file"); } } } else{ echo "ERROR: No files found in the directory."; } } else { echo "ERROR: The directory does not exist."; } } // Call the function outputFiles("mydir"); ?>
8 với đường dẫn nguồn và đích của tệp làm đối số. Nếu tệp đích đã tồn tại, nó sẽ bị ghi đè. Đây là một ví dụ tạo ra một bản sao của "ví dụ. txt" bên trong thư mục sao lưu

Để ví dụ này hoạt động, thư mục đích sao lưu và tệp nguồn tôi. e. "thí dụ. txt" phải tồn tại; nếu không PHP sẽ tạo ra lỗi


Liệt kê tất cả các tệp trong một thư mục

Bạn có thể sử dụng hàm PHP

0 để liệt kê các tệp và thư mục bên trong đường dẫn đã chỉ định

Bây giờ chúng ta sẽ tạo một hàm tùy chỉnh sẽ liệt kê đệ quy tất cả các tệp trong một thư mục bằng PHP. Tập lệnh này sẽ hữu ích nếu bạn đang làm việc với cấu trúc thư mục được lồng sâu

 0){
            // Loop through retuned array
            foreach($files as $file){
                if(is_file("$path/$file")){
                    // Display filename
                    echo $file . "
"; } else if(is_dir("$path/$file")){ // Recursively call the function if directories found outputFiles("$path/$file"); } } } else{ echo "ERROR: No files found in the directory."; } } else { echo "ERROR: The directory does not exist."; } } // Call the function outputFiles("mydir"); ?>


Liệt kê tất cả các tệp thuộc một loại nhất định

Trong khi làm việc với cấu trúc thư mục và tệp, đôi khi bạn có thể cần tìm hiểu một số loại tệp nhất định trong thư mục, ví dụ: chỉ liệt kê các tệp

1 hoặc 
2, v.v. Bạn có thể thực hiện việc này dễ dàng với hàm PHP 
3, khớp với các tệp dựa trên mẫu

Mã PHP trong ví dụ sau sẽ tìm kiếm thư mục tài liệu và liệt kê tất cả các tệp có phần mở rộng

1. Nó sẽ không tìm kiếm các thư mục con

________số 8

Hàm

3 cũng có thể được sử dụng để tìm tất cả các tệp trong một thư mục hoặc thư mục con của nó. Hàm được xác định trong ví dụ sau sẽ liệt kê đệ quy tất cả các tệp trong một thư mục, giống như chúng ta đã thực hiện trong ví dụ trước với hàm 
0

Chào mừng bạn đến với hướng dẫn cách liệt kê các tệp và thư mục trong PHP. Vì vậy, bạn cần lấy nội dung của một thư mục trong PHP?

Các cách phổ biến để liệt kê các tệp và thư mục trong PHP là

  •  0){
                // Loop through retuned array
                foreach($files as $file){
                    if(is_file("$path/$file")){
                        // Display filename
                        echo $file . "
    "; } else if(is_dir("$path/$file")){ // Recursively call the function if directories found outputFiles("$path/$file"); } } } else{ echo "ERROR: No files found in the directory."; } } else { echo "ERROR: The directory does not exist."; } } // Call the function outputFiles("mydir"); ?>
    9
  • 10
  • Mở và đọc thư mục
    • 11
    • 12
  • Sử dụng một trình vòng lặp
    • 13
    • 14

Điều đó bao gồm những điều cơ bản, nhưng sự khác biệt là gì?

ⓘ Tôi đã bao gồm một tệp zip chứa tất cả mã nguồn khi bắt đầu hướng dẫn này, vì vậy bạn không cần phải sao chép-dán mọi thứ… Hoặc nếu bạn chỉ muốn đi sâu vào

 

 

TLDR – TRANG TRÌNH BÀY NHANH

Php đọc tệp từ thư mục
Tải xuống & Ghi chú

Php đọc tệp từ thư mục
Thư mục tệp PHP

Php đọc tệp từ thư mục
Bit bổ sung & liên kết

Php đọc tệp từ thư mục
Video hướng dẫn

Php đọc tệp từ thư mục
Kết thúc

 

TẢI XUỐNG & LƯU Ý

Đầu tiên, đây là liên kết tải xuống mã ví dụ như đã hứa

 

GHI CHÚ NHANH

Nếu bạn phát hiện ra một lỗi, hãy bình luận bên dưới. Tôi cũng cố gắng trả lời các câu hỏi ngắn, nhưng đó là một người so với cả thế giới… Nếu bạn cần câu trả lời gấp, vui lòng xem danh sách các trang web của tôi để được trợ giúp về lập trình

 

MÃ VÍ DỤ TẢI XUỐNG

Nhấp vào đây để tải xuống tất cả mã nguồn ví dụ, tôi đã phát hành nó theo giấy phép MIT, vì vậy hãy thoải mái xây dựng trên mã nguồn đó hoặc sử dụng nó trong dự án của riêng bạn

 

 

PHP NHẬN THƯ MỤC TỆP

Được rồi, bây giờ chúng ta hãy đi vào các ví dụ về cách lấy tệp và thư mục trong PHP

 

PHƯƠNG PHÁP 1) QUÉT

1A) QUÉT CƠ BẢN

1a-scandir. php

6
  • 15 sẽ cung cấp cho bạn danh sách đầy đủ các tệp và thư mục trong thư mục được chỉ định trong một mảng
  • Hãy lưu ý, điều này cũng bao gồm cả
    16 và 
    17 ẩn. Đối với những người mới, chúng đại diện cho thư mục hiện tại và thư mục mẹ tương ứng
  • Chúng tôi không quan tâm đến "dấu chấm", vì vậy chúng tôi xóa chúng bằng cách sử dụng
    18
  • Phần còn lại thì tự giải thích – Lặp qua các tệp và thư mục

 

1B) SCANDIR ĐỌC CÁC THƯ MỤC PHỤ

1b-scandir. php

1

Nếu bạn cần “đào sâu” vào các thư mục con, hãy tạo một hàm đệ quy – Nếu mục nhập là một thư mục, hãy chuyển nó trở lại chính hàm đệ quy đó

 

 

PHƯƠNG PHÁP 2) TOÀN CẦU

2A) TOÀN CẦU CƠ BẢN

2a-quả địa cầu. php

2

Bây giờ,

19 sẽ lấy mọi thứ. Nếu bạn chỉ cần một số loại tệp nhất định – 
20 là lựa chọn tốt nhất

 

2B) THƯ MỤC CON ĐỌC TOÀN CẦU

2b-quả địa cầu. php

5

“Quả cầu đệ quy” hơi vòng vo hơn một chút, nhưng về cơ bản – Lấy tệp trước, sau đó “đào” đệ quy vào thư mục

 

 

PHƯƠNG PHÁP 3) OPENDIR

3A) MỞ ĐẦU CƠ BẢN

3a-opendir. php

6

Các phương thức trên sẽ “fetch mọi thứ vào một mảng”. Một số ninja giỏi về mã của bạn chắc đã nắm bắt được vấn đề tiềm ẩn – Điều gì sẽ xảy ra nếu có hàng nghìn tệp trong thư mục? . Vì vậy, thay vì “lấy mọi thứ cùng một lúc”,

21 và 
22 sẽ đọc là “từng mục một”

 

3B) THƯ MỤC PHỤ ĐỌC OPENDIR

3a-opendir. php

9

Vâng, điều này không nên là một bất ngờ bây giờ. Tạo một hàm đệ quy để mở và đọc các thư mục con

 

 

PHƯƠNG PHÁP 4) TRỰC TIẾP THƯ MỤC

4A) CÔNG CỤ LẠI CƠ BẢN

trình lặp 4a. php

 0){
            // Loop through retuned array
            foreach($files as $file){
                if(is_file("$path/$file")){
                    // Display filename
                    echo $file . "
"; } else if(is_dir("$path/$file")){ // Recursively call the function if directories found outputFiles("$path/$file"); } } } else{ echo "ERROR: No files found in the directory."; } } else { echo "ERROR: The directory does not exist."; } } // Call the function outputFiles("mydir"); ?>
0

Cuối cùng, đây là cách “thay thế” để đọc mục nhập thư mục theo mục nhập – Sử dụng

23

 

4B) ITERATOR ĐỌC CÁC THƯ MỤC PHỤ

trình lặp 4b. php

 0){
            // Loop through retuned array
            foreach($files as $file){
                if(is_file("$path/$file")){
                    // Display filename
                    echo $file . "
"; } else if(is_dir("$path/$file")){ // Recursively call the function if directories found outputFiles("$path/$file"); } } } else{ echo "ERROR: No files found in the directory."; } } else { echo "ERROR: The directory does not exist."; } } // Call the function outputFiles("mydir"); ?>
2

Chà… Bây giờ chắc các bạn đã thành thạo các hàm đệ quy rồi

 

 

BIT BỔ SUNG & LIÊN KẾT

Đó là tất cả những gì dành cho hướng dẫn và đây là một phần nhỏ về một số tính năng bổ sung và liên kết có thể hữu ích cho bạn

 

THÊM) KẾT HỢP GLOB & ITERATOR

5-global-lặp lại. php

 0){
            // Loop through retuned array
            foreach($files as $file){
                if(is_file("$path/$file")){
                    // Display filename
                    echo $file . "
"; } else if(is_dir("$path/$file")){ // Recursively call the function if directories found outputFiles("$path/$file"); } } } else{ echo "ERROR: No files found in the directory."; } } else { echo "ERROR: The directory does not exist."; } } // Call the function outputFiles("mydir"); ?>
3

Đâu là “phương pháp tốt nhất”? . Nhưng theo cá nhân tôi, “giải pháp tốt nhất” của tôi là sự kết hợp giữa glob và iterator – Điều này rất linh hoạt, có khả năng hạn chế theo loại tệp và cũng dễ dàng thực hiện phân trang với nó

 

LIÊN KẾT và THAM KHẢO

  • Scandir – PHP
  • Readdir – PHP
  • Toàn cầu – PHP
  • Trình lặp thư mục – PHP

 

VIDEO HƯỚNG DẪN

 

BẢNG CHEAT INFOGRAPHIC

Cảm ơn bạn đã đọc, và chúng tôi đã đi đến cuối. Tôi hy vọng rằng nó đã giúp bạn hiểu rõ hơn và nếu bạn muốn chia sẻ bất cứ điều gì với hướng dẫn này, vui lòng bình luận bên dưới. Chúc may mắn và mã hóa hạnh phúc

Làm cách nào để kiểm tra tệp trong thư mục trong PHP?

Hàm file_exists() kiểm tra xem tệp hoặc thư mục có tồn tại không. Ghi chú. Kết quả của chức năng này được lưu trữ.

LÀM THẾ NÀO bao gồm tất cả các tệp trong một thư mục trong PHP?

Để bao gồm tất cả các tệp PHP từ thư mục cùng một lúc cần một vòng lặp foreach. .
Thí dụ. Ví dụ này chứa bốn tệp PHP (file1. .
Tạo tệp1. php trong thư mục 'myGeek'
Tạo tệp2. php trong thư mục 'myGeek'
Tạo tệp3. php trong thư mục 'myGeek'
Tạo tệp4. php trong thư mục 'myGeek'
Tạo chính. php bên ngoài thư mục

__ TRỰC TIẾP __ trong PHP là gì?

Có thể sử dụng __DIR__ để lấy thư mục làm việc của mã hiện tại . Nó đã được giới thiệu trong PHP bắt đầu từ phiên bản 5. 3. Nó tương tự như sử dụng dirname(__FILE__). Thông thường, nó được sử dụng để bao gồm các tệp khác có trong một tệp được bao gồm.

Toàn cầu 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 .