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() Show Đây là một ví dụ văn bảnHoặ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óacú pháp
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ướiví 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 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 Đườ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" 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ỉ địnhcú 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 PHPCó 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 1Trong 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 2Trong 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 1Thí 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 địnhTừ 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 0Xóa file ẩn bằng PHPBạ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 1Vẫ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 |