PHP xóa tất cả các tệp và thư mục trong thư mục
Ví dụ đầu tiên của chúng tôi khá đơn giản, vì chúng tôi chỉ cần lặp qua các tệp và sau đó xóa chúng Show
Hãy xem mẫu mã sau đây //The name of the folder. $folder = 'temporary_files'; //Get a list of all of the file names in the folder. $files = glob($folder . '/*'); //Loop through the file list. foreach($files as $file){ //Make sure that this is a file and not a directory. if(is_file($file)){ //Use the unlink function to delete the file. unlink($file); } }
Xóa tệp trong thư mục conĐể xóa tất cả các tệp và thư mục trong tất cả các thư mục con, chúng ta có thể sử dụng đệ quy Dưới đây là một ví dụ về hàm PHP đệ quy xóa mọi tệp và thư mục trong một thư mục đã chỉ định function deleteAll($str) { //It it's a file. if (is_file($str)) { //Attempt to delete it. return unlink($str); } //If it's a directory. elseif (is_dir($str)) { //Get a list of the files in this directory. $scan = glob(rtrim($str,'/').'/*'); //Loop through the list of files. foreach($scan as $index=>$path) { //Call our recursive function. deleteAll($path); } //Remove the directory itself. return @rmdir($str); } } //call our function deleteAll('temporary_files'); Về cơ bản, hàm trên kiểm tra xem biến $str có đại diện cho đường dẫn đến tệp không. Nếu nó đại diện cho một đường dẫn đến một tệp, nó sẽ xóa tệp bằng chức năng hủy liên kết Tuy nhiên, nếu $str đại diện cho một thư mục, thì nó sẽ nhận danh sách tất cả các tệp trong thư mục đã nói trước khi xóa từng tệp Đôi khi bạn cần giải phóng không gian của máy chủ web bằng cách xóa các tệp cũ hoặc cụ thể hoặc tất cả các tệp khỏi một thư mục. Có nghĩa là bạn muốn xóa tệp khỏi thư mục mà không biết tên tệp. Loại chức năng này cần thiết cho tình huống sau
Trong bài viết ngắn này, chúng ta sẽ viết một đoạn script PHP đơn giản để hủy liên kết hoặc xóa tất cả các tệp khỏi thư mục hoặc thư mục. Không cần biết tên tập tin. Để xóa các tệp khỏi thư mục, chúng tôi sẽ sử dụng các hàm Ở đây mã PHP được cung cấp cho ba trường hợp. Trong những tình huống này, bạn cần xóa tất cả chức năng tệp trong dự án web của mình Xóa tất cả tệp khỏi thư mục. $files = glob('my_folder/*'); //get all file names Xóa đệ quy tất cả các tệp thuộc loại cụ thể khỏi thư mục. $files = glob('my_folder/*.jpg'); //get all file names Xóa tập tin cũ khỏi thư mục. $files = glob('my_folder/*'); //get all file names Bạn có muốn nhận trợ giúp triển khai hay sửa đổi hoặc nâng cao chức năng của tập lệnh này không? Cách xóa tất cả các tệp và thư mục con khỏi một thư mục bằng php. Như xóa tất cả các tệp của người dùng không hoạt động trong thời gian dài, xóa các tệp cũ hơn 3 tháng, v.v. Dù lý do là gì thì việc dọn dẹp thủ công như vậy là một công việc tẻ nhạt. Bạn có thể hoàn thành nó với sự trợ giúp của tập lệnh php tự động. Và chúng tôi sẽ giải thích cách xóa thư mục và tất cả các tệp và thư mục con khỏi nó bằng php Chức năng PHP được xác định trước để xóa các tệp khỏi thư mụcglob() và unlink() chỉ có hai hàm php gốc
Đây là hàm php đơn giản mà tôi đã viết để xóa tất cả các tệp khỏi một thư mục. Tiếp theo, chúng tôi lặp qua từng tệp một và kiểm tra xem mục đó có phải là tệp chứ không phải thư mục con hay không bằng hàm is_file() foreach(glob($dir. '/*') dưới dạng $file){ Chỉ xóa loại tệp cụ thể khỏi thư mụcChỉ xóa Loại tệp cụ thể cho Ví dụ. pdf, jpg. với tên mở rộng tệp, người dùng chỉ có thể xóa loại tệp cụ thể khỏi thư mục. foreach(glob($dir. '/*. pdf') dưới dạng $file){ Xóa tệp cũ hơn X ngày khỏi thư mụcXóa các tệp cũ và không mong muốn bằng cách đặt công việc CRON Người dùng có thể xóa các tệp cũ hơn 90 ngày foreach(glob($dir. '/*') dưới dạng $file){ Xóa tất cả các tệp và thư mục con khỏi một thư mục trong PHPChỉ cần xóa một thư mục bằng rmdir() sẽ không hoạt động. nó sẽ ném ngoại lệ nếu bạn định xóa thư mục có tệp trong đó. Vì vậy, trước tiên, bạn phải xóa từng tệp một khỏi từng thư mục con cộng với phần còn lại của tệp, sau đó xóa các thư mục bằng cách xóa thư mục mẹ Làm cách nào để xóa tất cả các tệp và thư mục trong một thư mục trong PHP?Đây là hàm đệ quy php để xóa tệp và thư mục con khỏi thư mục. '/*') as $file) { if(is_dir($file)) deleteAll($file); function deleteAll($dir) { foreach(glob($dir . '/*') as $file) { if(is_dir($file)) deleteAll($file); else unlink($file); } rmdir($dir); } ?>
Làm cách nào để xóa một thư mục và nội dung của nó trong PHP?hàm php delTree($dir) { $files = array_diff(scandir($dir), mảng('. ', '. ')); . bỏ liên kết("$dir/$file");
Làm cách nào để xóa đường dẫn thư mục trong PHP?Hàm rmdir() xóa một thư mục trống.
Làm cách nào để xóa tệp khỏi thư mục trong 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. |