PHP xóa tệp khỏi thư mục

Hãy xem những bước cần thực hiện để xóa tệp bằng phương pháp này. Trước hết, bạn nên tạo một danh sách tệp bằng phương thức global(). Bước thứ hai là lặp lại danh sách đó. Sau đó, bạn nên kiểm tra xem đó có phải là tệp hay không. Và cuối cùng, đã đến lúc xóa tệp đã cho bằng phương thức unlink()

Đây là một ví dụ

văn bản

Hoặc bạn có thể chọn áp dụng một đoạn mã ngắn cho phương thức global(). Đầu tiên, cần tạo danh sách tệp bằng phương thức global(). Bước tiếp theo là triển khai phương thức array_filter(). Sau đó, nó sẽ ánh xạ danh sách tới phương thức unlink() với array_map

Đây là cách để làm điều đó

Trong khuôn khổ của phương pháp này, cần phải tạo một danh sách các tệp với DirectoryIterator. Sau đó, lặp lại nó. Sau đó, bạn nên xác thực các tệp trong quá trình kiểm tra xem thư mục có dấu chấm hay không. Cuối cùng, áp dụng tham chiếu phương thức getPathName, xóa tệp bằng unlink()

Đây là một ví dụ

Trong đoạn mã này, chúng tôi đã chỉ cho bạn những cách phổ biến và hiệu quả nhất để xóa tệp khỏi thư mục bằng PHP

Trong PHP, chúng ta có thể xóa bất kỳ tệp nào bằng hàm unlink(). Hàm unlink() chỉ chấp nhận một đối số. tên tập tin. Nó tương tự như hàm unlink() của UNIX C

PHP unlink() tạo ra lỗi mức E_WARNING nếu tệp không bị xóa. Nó trả về TRUE nếu tệp được xóa thành công nếu không thì FALSE

cú pháp

$filename đại diện cho tên của tệp sẽ bị xóa

Ví dụ xóa tệp PHP

đầu ra

File deleted successfully

Trong các dự án web hàng ngày của bạn, bạn tình cờ làm việc với nhiều tệp thuộc các loại khác nhau, chẳng hạn như. php,. html,. css, hình ảnh, v.v.

Theo thời gian, bạn có thể đến một điểm mà bạn không còn cần một số tệp này nữa và muốn xóa chúng

Đây có thể là một nhiệm vụ quá sức, đặc biệt nếu chúng có số lượng lớn và muốn chọn và xóa những cái cụ thể với một tên tệp nhất định hoặc những cái đáp ứng các tiêu chí nhất định

May mắn thay, bạn có thể xóa chúng theo chương trình bằng tập lệnh PHP

Trong bài viết này, bạn sẽ tìm hiểu nhiều phương pháp trong đó bạn có thể xóa một hoặc nhiều tệp trong một thư mục nhất định bằng lập trình bằng cách sử dụng PHP

Xóa một tệp bằng PHP

Để xóa một tệp, hãy sử dụng hàm PHP


2 có sẵn. Tất cả những gì bạn cần là chuyển tên của tệp cho hàm và nó sẽ bị xóa

cú pháp

unlink($filename);

ví dụ 1


Đoạn mã trên xóa một tệp có tên image. jpg được đặt trong cùng thư mục với tệp PHP có mã

Nếu tệp bị xóa không nằm trong cùng thư mục với tập lệnh PHP thì bạn cần đưa đường dẫn tương đối đến vào hàm


2 như trong ví dụ bên dưới

ví dụ 2

Tôi đã tạo một tệp PHP có tên là "filedeletion. php" và đặt nó vào đường dẫn thư mục. "/opt/lampp/htdocs/www/demos/" như hình bên dưới

File deletion with PHP

Tôi cũng đã đặt một tệp có tên là "logo. png" và đặt nó vào đường dẫn thư mục. "/opt/lampp/htdocs/www/demos/images/" như hình bên dưới

File to be deleted with PHP

Đường dẫn tương đối đến tệp "logo. png" từ tập lệnh PHP là "hình ảnh/logo. png". Vì vậy, tôi đã thêm mã bên dưới vào "filedeletion. tập tin php"


Chạy đoạn mã trên sẽ xóa hoàn toàn "logo. png" từ thư mục "hình ảnh"

File deleted with PHP

Xin lưu ý rằng bạn cần có quyền ghi vào thư mục chứa tệp cần xóa. Nếu bạn không có quyền đó, bạn sẽ gặp lỗi bên dưới

Cảnh báo. hủy liên kết (hình ảnh/logo. png). Quyền bị từ chối trong /opt/lampp/htdocs/www/demos/filedeletion. php trên dòng 3

Bạn có thể thêm câu lệnh if vào đoạn mã trên để hiển thị thông báo thành công khi xóa thành công hoặc thông báo lỗi khi xóa lỗi như bên dưới


Nếu bạn cố xóa một tệp không tồn tại trong thư mục, bạn sẽ gặp lỗi bên dưới

Cảnh báo. hủy liên kết (hình ảnh/logo. png). Không có tệp hoặc thư mục như vậy trong /opt/lampp/htdocs/www/demos/filedeletion. php trên dòng 3

Do đó, điều quan trọng trước tiên là kiểm tra xem tệp đã tồn tại chưa trước khi thử xóa tệp đó

Chúng tôi sử dụng chức năng PHP


4 được xây dựng để thực hiện kiểm tra. Nó trả về true nếu tệp tồn tại hoặc false nếu không có tệp nào tồn tại trong thư mục được chỉ định

cú pháp

________số 8_______

Tương tự như hàm unlink(), hãy chuyển đường dẫn tệp nếu tệp không nằm trong cùng thư mục với tập lệnh PHP

Thí dụ

Mã bên dưới chỉ thực hiện thao tác xóa sau khi chúng tôi xác nhận rằng tệp tồn tại. Ngược lại sẽ báo lỗi file không tồn tại


Nếu bạn có nhiều tệp muốn xóa và tên của chúng được lưu trong bảng cơ sở dữ liệu hoặc trong một mảng, bạn có thể lặp lại đoạn mã trên trong một vòng lặp foreach hoặc một lúc như trong ví dụ bên dưới


 

Xóa nhiều hoặc tất cả các tệp trong một thư mục bằng PHP

Có một số cách để xóa tất cả các tệp trong một thư mục bằng PHP. Trong các phương pháp này, chúng tôi vẫn sử dụng cùng một thư mục như trong các ví dụ trước đó cho mục đích trình diễn

Phương pháp 1

Trong phương pháp này, chúng tôi sử dụng hàm


5 để lấy tên của tất cả các tệp trong thư mục. Sau đó, sử dụng tệp vòng lặp foreach để lặp qua tên tệp. Sau đó ta dùng hàm

6 để kiểm tra xem tên file có hợp lệ hay không và cuối cùng là hàm

2 để xóa file như ví dụ bên dưới


Phương pháp 2

Trong phương pháp này, chúng tôi tạo danh sách tất cả các tệp trong thư mục của mình bằng hàm


5, lọc danh sách đó bằng hàm

9 và cuối cùng ánh xạ chúng vào hàm

2 bằng hàm

1

Thí dụ


Bạn có thể đơn giản hóa đoạn mã trên thành một dòng như bên dưới


Xóa nhiều tệp của một loại tệp nhất định

Từ các phương pháp và ví dụ trên, giờ đây bạn có thể thoải mái xóa một hoặc tất cả các tệp trong một thư mục bằng PHP

Nhưng điều gì sẽ xảy ra nếu bạn có một thư mục chứa tất cả các loại tệp, vd. . html,. php,. pdf,. css,. png,. jpg, v.v. Trong trường hợp này, giả sử bạn muốn xóa tất cả các tệp thuộc loại. png và để nguyên phần còn lại. Các phương pháp trên sẽ không giúp bạn

Trong phương pháp này, chúng tôi làm chính xác điều đó. Cách làm cũng tương tự như trên chỉ khác là ta chỉ định loại file của file muốn xóa

Chúng tôi sử dụng hàm


5 để tìm kiếm tất cả các tệp loại

3 trong thư mục "hình ảnh" và sau đó ánh xạ chúng tới hàm

2 bằng cách sử dụng hàm

1 như trong ví dụ bên dưới


0

Xóa file ẩn bằng PHP

Bạn không thể xóa các tệp ẩn bằng các phương pháp/ví dụ trên. Để xóa các file ẩn bằng mã PHP, bạn cần cụ thể hơn trong hàm


5 và thực hiện như bên dưới


1

Vẫn còn một số cách khác để bạn có thể xóa nhiều tệp trong một thư mục. Tất cả chúng đều sử dụng hàm


2 nhưng có các phương pháp khác nhau để truy cập tệp và lặp qua chúng