Hướng dẫn delete all files and folders in a directory php - xóa tất cả các tệp và thư mục trong một thư mục php

Tôi cần một tập lệnh có thể xóa toàn bộ thư mục với tất cả các thư mục con, tệp và v.v. Tôi đã thử với chức năng này mà tôi tìm thấy trên Internet trước vài tháng trước nhưng nó không hoạt động hoàn toàn.

function deleteFile($dir) {
    if(substr($dir, strlen($dir)-1, 1) != '/') { 
        $dir .= '/'; 
    }
    if($handle = opendir($dir)) { 
        while($obj = readdir($handle)) { 
            if($obj != '.' && $obj != '..') { 
                if(is_dir($dir.$obj)) { 
                    if(!deleteFile($dir.$obj)) {
                        echo $dir.$obj."
"; return false; } } elseif(is_file($dir.$obj)) { if(!unlink($dir.$obj)) { echo $dir.$obj."
"; return false; } } } } closedir($handle); if(!@rmdir($dir)) { echo $dir.'
'; return false; } return true; } return true; }

Đối với bài kiểm tra, tôi sử dụng kho lưu trữ của Prestashop và tôi cố gắng xóa thư mục nơi lưu trữ được giải nén nhưng nó không hoạt động.

/home/***/public_html/prestashop/img/p/3/
/home/***/public_html/prestashop/img/p/3
/home/***/public_html/prestashop/img/p
/home/***/public_html/prestashop/img

Đây là những thư mục có vấn đề. Lần đầu tiên tôi nghĩ - "May là một vấn đề với Chmod của các tệp" nhưng khi tôi kiểm tra với tất cả các tệp Quyền CHMOD 755 (sau đó với 777) - kết quả là như nhau.

Xin chào! Hôm nay, chúng ta hãy xem cách xóa tất cả các tệp và trình phụ từ một thư mục bằng PHP. Nếu trang web của bạn cho phép người dùng tải lên nội dung thì tôi cá là bạn có thể muốn thực hiện việc dọn dẹp thường xuyên để giải phóng thêm không gian trong máy chủ web. Giống như xóa tất cả các tệp của người dùng mà không có 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ực hiện việc dọn dẹp như vậy là một nhiệm vụ tẻ nhạt. Bạn có thể thực hiện nó với sự trợ giúp của tập lệnh PHP tự động. Và tôi sẽ chỉ cho bạn ở đây chính xác làm thế nào để xóa thư mục và tất cả các tệp và thư mục phụ khỏi nó với PHP.how to delete all files and sub-folders from a folder using php. If your website allows user uploaded contents then I bet you might want to do regular clean ups to free up more space in web server. Like deleting all files of a user without activity for long time, deleting files older than 3 months etc. Whatever the reason, doing such clean-up manually is a tedious task. You can accomplish it with the help of an automated php script. And I'm going to show you here exactly how to delete directory and all files and sub directories from it with php.

Hướng dẫn delete all files and folders in a directory php - xóa tất cả các tệp và thư mục trong một thư mục php

Xóa tất cả các tệp khỏi thư mục trong PHP:

Đối với việc xóa tất cả các tệp từ một thư mục, quá trình này khá thẳng về phía trước. Bạn chỉ cần hai hàm PHP gốc glob()unlink() để đạt được điều này.

  • Hàm glob () Trả về một mảng tên tệp/thư mục phù hợp với mẫu đã cho.
  • Chức năng hủy liên kết () xóa một tệp đã cho.

Quá trình của chúng tôi diễn ra như thế này - bạn phải lặp qua từng tệp một từ một thư mục nhất định, hãy kiểm tra xem đó có phải là tệp và xóa tệp với chức năng trợ giúp của không liên kết () không. Dưới đây là chức năng PHP đơn giản mà tôi đã viết để xóa tất cả các tệp khỏi thư mục.

Hàm PHP để xóa tất cả các tệp khỏi thư mục:

Usage:

Như bạn có thể thấy trong Function DeleteFiles (), chúng tôi đã sử dụng mẫu '/*' để hướng dẫn glob () để lấy tất cả các tên tệp 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 này có phải là tệp không và không phải là một thư mục phụ sử dụng hàm

/home/***/public_html/prestashop/img/p/3/
/home/***/public_html/prestashop/img/p/3
/home/***/public_html/prestashop/img/p
/home/***/public_html/prestashop/img
0.

Khi chúng tôi xác nhận nó dưới dạng tệp, chúng tôi xóa nó bằng phương thức hủy liên kết (). Quá trình sẽ được lặp lại cho đến khi không còn tệp trong thư mục cụ thể.

Chỉ xóa loại tệp cụ thể khỏi thư mục:

Giả sử bạn không muốn xóa tất cả các tệp, chỉ một mình các tệp PDF khỏi thư mục. Sau đó, đây là kịch bản cho nhiệm vụ.

Xóa các tệp cũ hơn x ngày từ thư mục:

Đây là một biến thể hữu ích khác của tập lệnh. Giả sử bạn muốn xóa các tệp cũ hơn nói ít nhất 90 ngày tuổi. Bạn chỉ cần kiểm tra xem ngày và thời gian sửa đổi cuối cùng của tệp lớn hơn 90 ngày và xóa nếu có.

 (60 * 60 * 24 * 90))
                unlink($file);
        }
    }
}
?>

Để kiểm tra xem các tệp có cũ hơn 90 ngày hay không, chúng tôi đã sử dụng

/home/***/public_html/prestashop/img/p/3/
/home/***/public_html/prestashop/img/p/3
/home/***/public_html/prestashop/img/p
/home/***/public_html/prestashop/img
1 để có dấu thời gian sửa đổi cuối cùng của một tệp nhất định, đã lấy sự khác biệt của nó so với dấu thời gian hiện tại và kiểm tra nó so với số lượng 90 ngày.

Xóa tất cả các tệp và thư mục phụ khỏi một thư mục trong PHP:

Cho đến nay chúng ta đã thấy về việc xóa chỉ các tệp có trong một thư mục. Điều gì sẽ xảy ra nếu bạn có thư mục phụ với các tệp bên trong thư mục. Trong trường hợp như vậy, tập lệnh trên sẽ không hoạt động. Bạn sẽ cần tạo chức năng đệ quy để xóa tất cả các tệp, thư mục phụ và thư mục cha.

Chỉ cần xóa một thư mục với

/home/***/public_html/prestashop/img/p/3/
/home/***/public_html/prestashop/img/p/3
/home/***/public_html/prestashop/img/p
/home/***/public_html/prestashop/img
2 sẽ không hoạt động. Nó sẽ ném ngoại lệ nếu bạn cố gắng xóa thư mục với các tệp trong đó. Vì vậy, trước tiên bạn phải xóa từng tệp một từ mỗi thư mục phụ cộng với phần còn lại của các tệp và sau đó xóa các thư mục bằng cách xóa thư mục chính.

Dưới đây là hàm đệ quy PHP để xóa các tệp và thư mục phụ khỏi thư mục.

Sử dụng chức năng:

Nó sẽ tự động xóa tất cả các tệp, thư mục phụ khỏi thư mục.

Bạn có thể sử dụng tập lệnh PHP ở trên để xóa các tệp và thư mục phụ trong một thư mục nhất định theo chương trình. Kịch bản tương đối nhanh nhưng nó phụ thuộc vào số lượng tệp và thư mục sẽ bị xóa. Tôi hy vọng bạn thấy hướng dẫn này hữu ích. Gặp bạn trong một điều thú vị khác :)

Làm cách nào để xóa tất cả các tệp trong một thư mục trong PHP?

Lặp lại danh sách các tập tin. Kiểm tra xem tên của các tập tin có hợp lệ không. Xóa tệp bằng phương thức Unlink () ...
Tạo danh sách các tệp bằng phương thức glob () ..
Lọc danh sách bằng các phương thức Array_Filter () hoặc Array_merge () ..
Ánh xạ phương thức Danh sách để hủy liên kết () bằng phương thức Array_Map () ..

Làm cách nào để xóa tất cả các tệp trong một thư mục trong SSH?

Để làm như vậy bằng SSH, bạn sẽ cần thực hiện lệnh thích hợp - RM.Điều này sẽ phù hợp với tất cả các tệp bắt đầu bằng 'myfile' và kết thúc '.txt 'và xóa chúng.execute the appropriate command – rm. This will match all files starting with 'myFile' and ending in '. txt' and delete them.

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 ...
Ví dụ: Ví dụ này chứa bốn tệp PHP (File1. ...
Tạo File1.php trong thư mục 'MyGeek':.
Tạo File2.php trong thư mục 'MyGeeks':.
Tạo File3.php trong thư mục 'MyGeeks':.
Tạo File4.php trong thư mục 'MyGeeks':.
Tạo Main.php bên ngoài thư mục:.

Tôi có thể xóa các tệp PHP không?

Không có xóa từ khóa hoặc chức năng trong ngôn ngữ PHP.Nếu bạn đến trang này để tìm cách xóa một tệp, hãy thử Unlink ().Để xóa một biến từ phạm vi cục bộ, hãy xem UnsT ().try unlink(). To delete a variable from the local scope, check out unset().