PHP xóa tập tin trong thư mục

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách đọc và xóa tệp khỏi thư mục bằng PHP. Sử dụng phương pháp này, bạn có thể hiển thị tất cả các tệp có trong thư mục và xóa bất kỳ loại tệp nào bằng PHP

Bạn cũng có thể muốn tạo, chỉnh sửa và xóa tệp bằng PHP

Tham gia với hơn 27.000 thành viên trong nhóm Google của bạn và nhận các hướng dẫn mới nhất

Nhận các hướng dẫn mới nhất của chúng tôi, Hướng dẫn cách thực hiện về phát triển web mỗi ngày ngay trong hộp thư đến của bạn

Để đọc và xóa tệp khỏi thư mục, chỉ cần hai bước. -

  1. Tạo tệp PHP để đọc tệp từ thư mục
  2. Tạo tệp PHP để xóa tệp khỏi thư mục

Bước 1. Tạo tệp PHP để đọc tệp từ thư mục

Chúng tôi tạo một tệp PHP và lưu nó với tên đã đọc. php


".$file.""; echo ""; echo ""; echo ""; echo ""; } closedir[$dir]; } ?>

Trong bước này, chúng tôi đọc tất cả các tệp từ thư mục hình ảnh và tạo nút xóa cho từng tệp để xóa tệp đó khỏi thư mục

Chúng ta sử dụng hàm opendir[] để mở thư mục đọc file sau đó sử dụng vòng lặp while[] và hàm readdir[] để đọc tất cả các file sau đó sử dụng hàm closedir[] để đóng thư mục

Bạn cũng có thể muốn xóa phần mở rộng tệp bằng htaccess

Bước 2. Tạo tệp PHP để xóa tệp khỏi thư mục

Chúng tôi tạo một tệp PHP và lưu nó với tên delete_file. php

Ở bước này chúng ta lấy tên file và sử dụng hàm php unlink[] để xóa file đó khỏi thư mục

Đó là tất cả, đây là cách đọc và xóa tệp khỏi thư mục bằng PHP. Bạn có thể tùy chỉnh thêm mã này theo yêu cầu của bạn. Và xin vui lòng cho nhận xét về hướng dẫn này

Trong bài đăng này, tôi sẽ chỉ cho bạn cách bạn có thể xóa tất cả các tệp và thư mục khỏi một thư mục bằng PHP. Điều này khá đơn giản, vì chúng tôi chỉ cần lặp qua các tệp và xóa chúng

Trước hết, chúng tôi xin hướng dẫn bạn cách xóa chỉ các tệp trong một thư mục


3 của php sẽ không hoạt động. Nó sẽ đưa ra một số ngoại lệ nếu bạn cố xóa thư mục trực tiếp bằng các tệp trong đó. Vì vậy, trước hết, bạn phải xóa từng tệp một khỏi từng thư mục con và sau đó xóa các thư mục bằng cách xóa thư mục mẹ

Vì vậy, đây là hàm đệ quy để xóa tệp và thư mục con khỏi thư mục


Đây là chức năng sẽ giúp bạn xóa thư mục và thư mục con cũng như các tệp. Bạn có thể sử dụng chức năng này bằng cách gọi đơn giản


Về cơ bản, hàm trên kiểm tra xem biến $file 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 $file đạ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. Cuối cùng, nó tự xóa thư mục con bằng cách sử dụng hàm rmdir của PHP

Bạn có thể sử dụng tập lệnh php ở trên để xóa các tệp và thư mục con trong một thư mục nhất định theo chương trình. Tập lệnh 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

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óa

cú pháp

unlink[$filename];

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ưới

ví 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

0

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ỉ định

cú pháp

2

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

3

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

4

 

Xóa nhiều hoặc tất cả các tệp trong một thư mục bằng PHP

Có 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 1

Trong 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 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

8

Phương pháp 2

Trong 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

1

Thí dụ

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


0


Xóa file ẩn bằng PHP

Bạ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


1

Vẫ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ả đều sử dụng hàm


2 nhưng có các phương thức khác nhau để truy cập tệp và lặp qua chúng

Làm cách nào bạn có thể xóa tệp khỏi PHP?

Hàm unlink[] xóa tệp.

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

Hàm unlinkr xóa đệ quy tất cả các thư mục và tệp trong đường dẫn đã cho bằng cách đảm bảo rằng nó không tự xóa tập lệnh. unlinkr["/home/user/temp"]; Thao tác này sẽ xóa tất cả các tệp trong thư mục home/user/temp.

Nêu 3 cách xóa tệp hoặc thư mục?

5 cách xóa tệp [tạm thời hoặc vĩnh viễn] trong Windows 10 .
Xóa hoặc xóa vĩnh viễn tệp bằng phím tắt
Xóa tệp bằng menu chuột phải
Xóa hoặc xóa vĩnh viễn các tệp khỏi dải băng của File Explorer
Xóa vĩnh viễn tệp bằng PowerShell hoặc Command Prompt

Làm cách nào để xóa hình ảnh khỏi cơ sở dữ liệu và thư mục trong PHP?

Bạn có thể dùng hàm unlink[] để xóa hình ảnh khỏi thư mục . Nếu hình ảnh của bạn nằm trong cùng một thư mục tập lệnh và tên tệp nằm trong biến $id, bạn có thể xóa nó bằng cách sử dụng unlink[$id]. Ở đây đường dẫn/ là vị trí của thư mục lưu trữ hình ảnh. Lưu câu trả lời này.

Chủ Đề