Xóa tất cả các file từ một thư mục

PHP nâng cao 13/03/2017 07:00 1015
Trong một vài trường hợp bạn cần giải phóng không gian lưu trữ của máy chủ web-server bằng cách xóa các tập tin cũ hoặc các tập tin cụ thể nào đố hoặc tất cả các tệp tin từ một thư mục.

Bạn muốn loại bỏ các tập tin từ thư mục mà không biết tên của các tập tin. Chức năng này được sử dụng cho tình huống sau.

  • Cần xóa tất cả các tệp trong một thư mục để giải phóng không gian của máy chủ web.
  • Cần xóa các tệp cũ trong thư mục được sử dụng trước thời gian cụ thể.
  • Cần xóa một số tệp khỏi một thư mục chứa một phần mở rộng cụ thể.
  • Và nhiều hơn nữa.

Trong bài viết ngắn này, chúng ta sẽ viết một script  PHP đơn giản để loại bỏ hoặc xóa tất cả các tệp từ thư mụ. Chúng ta không cần biết tên tệp. Để xóa các tập tin từ thư mục, chúng ta sẽ sử dụng hàm chức năng có sẵn trong PHP glob() và unlink() trong PHP.

  • Hàm glob() được sử dụng để tìm kiếm tập tin hoặc thư mục dựa trên mẫu được chỉ định.
  • Hàm unlink() được sử dụng để xóa một tập tin.

Trong bài viết này mã PHP được cung cấp cho ba trường hợp.

1. Xóa tất cả các file từ folder.

Đoạn mã sau sẽ xóa tất cả các files từ thư mục.

$files = glob('my_folder/*'); //lấy tất cả các tập tin
foreach($files as $file){
    if(is_file($file))
    unlink($file); //Xáo tập tin
}

2. Xóa tất cả các file của một loại tệp

Đoạn mã sau chỉ xóa các tệp có phần mở rộng cụ thể.

$files = glob('my_folder/*.jpg'); //lấy tất cả các tập tin
foreach($files as $file){
    if(is_file($file))
    unlink($file); //Xóa
}

3. Xóa tất cả các file cũ từ folder.

Đoạn mã sau sẽ loại bỏ các tệp được sửa đổi trước thời gian đã chỉ định.

$files = glob('my_folder/*'); //lấy tất cả các tập tin
foreach($files as $file){
    $lastModifiedTime = filemtime($file);
    $currentTime = time();
    $timeDiff = abs($currentTime - $lastModifiedTime)/(60*60); //giờ
    if(is_file($file) && $timeDiff > 10) //kiểm tra nếu file được thay đổi trước 10h
    unlink($file); //Xóa file
}

Lưu ý: Trước khi duyệt file bạn cần kiểm tra xem thư mục cần duyệt và xóa file có được cấp quyền đọc và xóa(CHMODE) file hay không. Các bạn có thể xem thêm bài viết Các hàm xử lý file trong php để lắm chắc kiến thức này.

Xem Thêm

Profile photo of adminTheHalfHeart

B.V.T

Sinh ra và lớn nên ở Bắc Giang. Hiện tại thì tôi đang là một lập trình viên tại VietISO. Tôi lập website này với mục đích là bookmark những gì tôi đã đọc qua và mong muốn chia sẻ những gì tôi biết.