Chào mừng bạn đến với hướng dẫn về cách xóa tệp trong PHP. Bạn cần xóa một số tệp cũ, tệp sao lưu hoặc tệp tạm thời trong PHP?
- Để xóa một tệp trong PHP, hãy sử dụng <?php // (A) FILE TO DELETE $file = "file.txt"; // (B) CHECK BEFORE DELETE if (file_exists($file)) { echo unlink($file) ? "OK" : "ERROR" ; } else { echo "$file NOT FOUND"; }6
- Để xóa một thư mục trống, hãy sử dụng <?php // (A) FILE TO DELETE $file = "file.txt"; // (B) CHECK BEFORE DELETE if (file_exists($file)) { echo unlink($file) ? "OK" : "ERROR" ; } else { echo "$file NOT FOUND"; }7
Điều đó bao gồm những điều cơ bản siêu nhanh, nhưng "xóa nâng cao" toàn bộ thư mục và chỉ một số loại tệp nhất định là một câu chuyện khác. Làm thế nào để chúng ta làm những điều đó?
ⓘ Tôi đã bao gồm một tệp zip chứa tất cả mã nguồn ví dụ 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
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 mã ví dụ, tôi đã phát hành mã này theo giấy phép MIT, vì vậy vui lòng xây dựng trên mã đó hoặc sử dụng mã đó trong dự án của riêng bạn
CÁC CÁCH XÓA TẬP TIN TRONG PHP
Được rồi, bây giờ chúng ta hãy đi vào các ví dụ về cách xóa tệp trong PHP
1) XÓA ĐƠN GIẢN
1-cơ bản. php
<?php // (A) DELETE FILE echo unlink("file.txt") ? "OK" : "ERROR" ; // (B) DELETE FOLDER echo rmdir("d:/test") ? "OK" : "ERROR" ;Như trong phần giới thiệu ở trên, chúng tôi sử dụng <?php // (A) FILE TO DELETE $file = "file.txt"; // (B) CHECK BEFORE DELETE if (file_exists($file)) { echo unlink($file) ? "OK" : "ERROR" ; } else { echo "$file NOT FOUND"; }8 để xóa tệp và <?php // (A) FILE TO DELETE $file = "file.txt"; // (B) CHECK BEFORE DELETE if (file_exists($file)) { echo unlink($file) ? "OK" : "ERROR" ; } else { echo "$file NOT FOUND"; }9 để xóa thư mục. Hãy lưu ý rằng cả hai chức năng sẽ trả về <?php // (A) FILE TO DELETE $file = "file.txt"; // (B) CHECK BEFORE DELETE if (file_exists($file)) { echo unlink($file) ? "OK" : "ERROR" ; } else { echo "$file NOT FOUND"; }0 để cho biết quá trình này có thành công hay không
P. S. Không thể xóa các tệp được bảo vệ chống sao chép và không thể xóa các thư mục không trống
2) XÓA NẾU TẬP TIN TỒN TẠI
2-xóa-tồn tại. php
<?php // (A) FILE TO DELETE $file = "file.txt"; // (B) CHECK BEFORE DELETE if (file_exists($file)) { echo unlink($file) ? "OK" : "ERROR" ; } else { echo "$file NOT FOUND"; }PHP sẽ đưa ra cảnh báo khi xóa các tệp không tồn tại. Vì vậy, đây là một “khắc phục nhanh” – Chỉ cần thực hiện kiểm tra <?php // (A) FILE TO DELETE $file = "file.txt"; // (B) CHECK BEFORE DELETE if (file_exists($file)) { echo unlink($file) ? "OK" : "ERROR" ; } else { echo "$file NOT FOUND"; }1 trước khi tiến hành xóa
3) CHỈ XÓA MỘT SỐ LOẠI TẬP TIN
3-xóa-loại. php
<?php // (A) GET ALL FILES OF SPECIFIED EXTENSION $folder = "d:/test/"; $ext = "jpg,png,gif"; $files = glob("$folder*.{$ext}", GLOB_BRACE); // (B) LOOP AND DELETE if (count($files)>0) { foreach ($files as $f) { unlink($f); } }Chỉ muốn xóa một số loại tệp nhất định trong một thư mục?
4) CHỈ XÓA TỆP NẾU CŨ HƠN NGÀY ĐẶT
4-xóa-cũ. php
<?php // (A) FOLDER & KEEP DATE $folder = "d:/test/"; $keep = strtotime("2022-12-01"); $files = glob("$folder*", GLOB_BRACE); // (B) DELETE ONLY IF OLDER THAN SET DATE if (count($files)>0) { foreach ($files as $f) { if (filemtime($f) < $keep) { unlink($f); } }}Bạn muốn xóa một số bản sao lưu cũ hoặc tệp lỗi thời? . Sau đó, sử dụng <?php // (A) FILE TO DELETE $file = "file.txt"; // (B) CHECK BEFORE DELETE if (file_exists($file)) { echo unlink($file) ? "OK" : "ERROR" ; } else { echo "$file NOT FOUND"; }4 để kiểm tra thời gian “tệp được sửa đổi lần cuối” – Xóa tệp nếu tệp cũ hơn ngày đã đặt
5) XÓA TOÀN BỘ THƯ MỤC
5-xóa-thư mục. php
<?php function delFolder ($folder) { // (A1) GET ALL FILES + FOLDERS $all = glob("$folder*", GLOB_BRACE); // (A2) DELETE FILES & RECURSIVE DELETE SUB-FOLDERS if (count($all)>0) { foreach ($all as $a) { if (is_dir($a)) { delFolder("$a/"); } else { echo unlink($a); } }} // (A3) DELETE CURRENT FOLDER ITSELF rmdir($folder); } // (B) GO! delFolder("d:/test/");Vì chúng tôi không thể sử dụng <?php // (A) FILE TO DELETE $file = "file.txt"; // (B) CHECK BEFORE DELETE if (file_exists($file)) { echo unlink($file) ? "OK" : "ERROR" ; } else { echo "$file NOT FOUND"; }9 để xóa trực tiếp toàn bộ thư mục, nên chúng tôi phải tạo một hàm đệ quy sẽ đào sâu vào các thư mục con và xóa mọi thứ bên trong
6) XÓA DÒNG LỆNH
6-xóa-lệnh. php
<?php // (A) FILE TO DELETE $file = "file.txt"; // (B) CHECK BEFORE DELETE if (file_exists($file)) { echo unlink($file) ? "OK" : "ERROR" ; } else { echo "$file NOT FOUND"; }0Cuối cùng, đây không hoàn toàn là “xóa trong PHP”… Nhưng chúng ta thực sự có thể chạy các lệnh shell trong PHP để xóa các tệp và thư mục
BIT BỔ SUNG & LIÊN KẾT
Đó là tất cả cho hướng dẫn chính 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
TỔNG KẾT
Chức năng Mô tả Liên kết tham chiếu<?php // (A) FILE TO DELETE $file = "file.txt"; // (B) CHECK BEFORE DELETE if (file_exists($file)) { echo unlink($file) ? "OK" : "ERROR" ; } else { echo "$file NOT FOUND"; }6Xóa tệp mục tiêu. Bấm vào đây<?php // (A) FILE TO DELETE $file = "file.txt"; // (B) CHECK BEFORE DELETE if (file_exists($file)) { echo unlink($file) ? "OK" : "ERROR" ; } else { echo "$file NOT FOUND"; }7Xóa thư mục. Bấm vào đây<?php // (A) FILE TO DELETE $file = "file.txt"; // (B) CHECK BEFORE DELETE if (file_exists($file)) { echo unlink($file) ? "OK" : "ERROR" ; } else { echo "$file NOT FOUND"; }8Kiểm tra xem tệp đích có tồn tại không. Nhấp vào đây<?php // (A) FILE TO DELETE $file = "file.txt"; // (B) CHECK BEFORE DELETE if (file_exists($file)) { echo unlink($file) ? "OK" : "ERROR" ; } else { echo "$file NOT FOUND"; }9Nhận tất cả tên đường dẫn cho mẫu/thư mục đích đã cho. Bấm vào đây<?php // (A) GET ALL FILES OF SPECIFIED EXTENSION $folder = "d:/test/"; $ext = "jpg,png,gif"; $files = glob("$folder*.{$ext}", GLOB_BRACE); // (B) LOOP AND DELETE if (count($files)>0) { foreach ($files as $f) { unlink($f); } }0Chạy lệnh trình bao. Bấm vào đây
LIÊN KẾT THÊM
- Cách đọc tệp trong PHP – Code Boxx
- Cách Viết Tệp Trong PHP – Code Boxx
- Đường dẫn tuyệt đối và tương đối – Code Boxx
BẢNG CHEAT INFOGRAPHIC
Cảm ơn bạn đã đọc, và chúng tôi đã đi đến phần cuối của hướng dẫn này. Tôi hy vọng rằng nó đã giúp bạn với dự án của bạn và nếu bạn muốn chia sẻ bất cứ điều gì với hướng dẫn này, xin vui lòng bình luận bên dưới. Chúc may mắn và mã hóa hạnh phúc