Hướng dẫn how to unlink multiple files in php? - làm cách nào để hủy liên kết nhiều tệp trong php?

Đôi khi, tôi phải xóa nhiều tệp trong các thư mục khác nhau trên máy chủ. Đó là một công việc tẻ nhạt để từng cái này qua FTP. Tôi đã viết một kịch bản nhỏ làm công việc. Tôi có thể nhập danh sách các tệp trong Excel và sao chép và dán chúng vào tập lệnh. Tuy nhiên, cách tiếp cận của tôi không thanh lịch:

$file1 = "some-file.php";
$file12 = "some-file2.php";

...

if (!empty($file1)) {
if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file1 ) )
{
  echo 'The file ' . $file1 . ' was deleted!
'; } else { echo 'Couldn't delete the file ' . $file1 . '!
'; }} if (!empty($file2)) { ...

Tôi muốn làm điều này với một foreach và một mảng, nhưng không biết làm thế nào. Bất kỳ trợ giúp sẽ được đánh giá cao!

Hướng dẫn how to unlink multiple files in php? - làm cách nào để hủy liên kết nhiều tệp trong php?

Đã hỏi ngày 12 tháng 3 năm 2014 lúc 14:48Mar 12, 2014 at 14:48

1

Chỉ cần đặt các tập tin của bạn vào một mảng và lặp nó.

$files = array('some-file.php', 'some-file2.php');

foreach ($files as $file) {
  if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file ) ) {
    echo 'The file ' . $file . ' was deleted!
'; } else { echo 'Couldn\'t delete the file ' . $file . '!
'; } }

Đã trả lời ngày 12 tháng 3 năm 2014 lúc 14:49Mar 12, 2014 at 14:49

Hướng dẫn how to unlink multiple files in php? - làm cách nào để hủy liên kết nhiều tệp trong php?

Hszhszhsz

145K59 Huy hiệu vàng255 Huy hiệu bạc 309 Huy hiệu đồng59 gold badges255 silver badges309 bronze badges

2

Ngoài ra, tôi nghĩ rằng tốt hơn nếu bạn sử dụng file_exists ()

if (file_exists($file1)) 
{
unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file1 );
clearstatcache();
}

Đã trả lời ngày 12 tháng 3 năm 2014 lúc 14:53Mar 12, 2014 at 14:53

Hướng dẫn how to unlink multiple files in php? - làm cách nào để hủy liên kết nhiều tệp trong php?

Andrewandrewandrew

2.0382 Huy hiệu vàng25 Huy hiệu bạc33 Huy hiệu đồng2 gold badges25 silver badges33 bronze badges

3

Xóa nhiều tệp của một loại tệp đã cho

1.jpg
1-s.jpg
1big.jpg
2.jpg
2-s.jpg
2big.jpg

Từ các phương thức và ví dụ trên, giờ đây bạn có thể thoải mái xóa đơn hoặc tất cả các tệp trong thư mục bằng PHP.

unlink('user-images/1/p/1big.jpg');

Nhưng điều gì sẽ xảy ra nếu bạn có một thư mục với tất cả các loại tệp, ví dụ. .html, .php, .pdf, .css, .png, .jpg, v.v. Các phương pháp trên sẽ không giúp bạn.

EDIT: Dưới đây là toàn bộ kịch bản, thực sự không có nhiều, không thấy mọi thứ có thể bị ảnh hưởng như thế nào. Tôi chưa bao giờ thấy điều này trước đây :(


& nbsp; & nbsp; John Mwaniki / & nbsp; & nbsp; 22 tháng 9 năm 2021

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 khác nhau 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 và muốn xóa chúng.

Đây có thể là một nhiệm vụ áp đảo, đặc biệt là nếu họ đã chồng chất lên những con số khổng lồ và muốn chọn và xóa các tên cụ thể với một tên tệp nhất định hoặc những ngườ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 với tập lệnh PHP.

Trong bài viết này, bạn sẽ tìm hiểu nhiều phương thức 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 cách sử dụng PHP.

Xóa một tệp duy nhất bằng PHP

Để xóa một tệp duy nhất, hãy sử dụng chức năng Php

$files = array('some-file.php', 'some-file2.php');

foreach ($files as $file) {
  if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file ) ) {
    echo 'The file ' . $file . ' was deleted!
'; } else { echo 'Couldn\'t delete the file ' . $file . '!
'; } }
8 sẵn có. Tất cả những gì bạn cần là chuyển tên của tệp cho chức năng và nó sẽ bị xóa.

Cú pháp

unlink($filename);

ví dụ 1


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 với mã.

Nếu tệp bị xóa xảy ra không nằm trong cùng một thư mục với tập lệnh PHP thì bạn cần đưa đường dẫn tương đối vào hàm

$files = array('some-file.php', 'some-file2.php');

foreach ($files as $file) {
  if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file ) ) {
    echo 'The file ' . $file . ' was deleted!
'; } else { echo 'Couldn\'t delete the file ' . $file . '!
'; } }
8 như trong ví dụ dưới đây.

Ví dụ 2

Tôi đã tạo một tệp PHP là "FileDeletion.php" và đặt nó vào đường dẫn thư mục: "/opt/đèn/htdocs/www/demos/" như được hiển thị bên dưới:

Hướng dẫn how to unlink multiple files in php? - làm cách nào để hủy liên kết nhiều tệp trong php?

Tôi cũng đã đặt một tệp là "logo.png" và đặt nó vào đường dẫn thư mục: "/opt/đèn/htdocs/www/demos/hình ảnh/" như hình dưới đây:

Hướng dẫn how to unlink multiple files in php? - làm cách nào để hủy liên kết nhiều tệp trong php?

Đườ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 tệp "fileDeletion.php".

________số 8

Chạy mã trên hoàn toàn xóa tệp "logo.png" khỏi thư mục "hình ảnh".

Hướng dẫn how to unlink multiple files in php? - làm cách nào để hủy liên kết nhiều tệp trong php?

Xin lưu ý rằng bạn cần có quyền ghi cho thư mục trong đó tệp sẽ bị 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: Không 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 unlink(images/logo.png): Permission denied in /opt/lampp/htdocs/www/demos/filedeletion.php on line 3

Bạn có thể thêm câu lệnh IF vào 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 về lỗi xóa như dưới đây:


Nếu bạn cố gắng 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: Không liên kết (hình ảnh/logos.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 unlink(images/logos.png): No such file or directory in /opt/lampp/htdocs/www/demos/filedeletion.php on line 3

Do đó, điều quan trọng trước tiên là kiểm tra xem tệp đã tồn tại trước khi cố gắng xóa nó.

Chúng tôi sử dụng chức năng PHP

if (file_exists($file1)) 
{
unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file1 );
clearstatcache();
}
7 đượ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 sai nếu không có tệp đó tồn tại trong thư mục được chỉ định.

Cú pháp

$files = array('some-file.php', 'some-file2.php');

foreach ($files as $file) {
  if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file ) ) {
    echo 'The file ' . $file . ' was deleted!
'; } else { echo 'Couldn\'t delete the file ' . $file . '!
'; } }
0

Theo cách tương tự như hàm hủy liên kết (), truyề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 việc xóa sau khi chúng tôi đã xác nhận rằng tệp tồn tại. Khác, nó sẽ trả về một thông báo lỗi mà tệp không tồn tại.

$files = array('some-file.php', 'some-file2.php');

foreach ($files as $file) {
  if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file ) ) {
    echo 'The file ' . $file . ' was deleted!
'; } else { echo 'Couldn\'t delete the file ' . $file . '!
'; } }
1

Nếu bạn có nhiều tệp mà bạn muốn xóa và lưu tên của chúng trong bảng cơ sở dữ liệu hoặc trong một mảng, bạn có thể lặp lại mã trên trong một thời gian hoặc vòng lặp foreach như trong ví dụ dưới đây.

$files = array('some-file.php', 'some-file2.php');

foreach ($files as $file) {
  if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file ) ) {
    echo 'The file ' . $file . ' was deleted!
'; } else { echo 'Couldn\'t delete the file ' . $file . '!
'; } }
2

Xóa nhiều hoặc tất cả các tệp trong 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 thức này, chúng tôi sử dụng hàm

if (file_exists($file1)) 
{
unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file1 );
clearstatcache();
}
8 để lấy tên của tất cả các tệp trong thư mục. Sau đó sử dụng tệp FormEach để lặp lại thông qua các tên tệp. Sau đó, chúng tôi sử dụng chức năng
if (file_exists($file1)) 
{
unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file1 );
clearstatcache();
}
9 để kiểm tra xem tên của tệp có hợp lệ hay không và cuối cùng là
$files = array('some-file.php', 'some-file2.php');

foreach ($files as $file) {
  if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file ) ) {
    echo 'The file ' . $file . ' was deleted!
'; } else { echo 'Couldn\'t delete the file ' . $file . '!
'; } }
8 để xóa các tệp như được hiển thị trong ví dụ dưới đây:

$files = array('some-file.php', 'some-file2.php');

foreach ($files as $file) {
  if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file ) ) {
    echo 'The file ' . $file . ' was deleted!
'; } else { echo 'Couldn\'t delete the file ' . $file . '!
'; } }
3

Phương pháp 2

Trong phương thức này, chúng tôi tạo danh sách tất cả các tệp trong thư mục của chúng tôi bằng hàm

if (file_exists($file1)) 
{
unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file1 );
clearstatcache();
}
8, lọc danh sách đó bằng hàm
1.jpg
1-s.jpg
1big.jpg
2.jpg
2-s.jpg
2big.jpg
2 và cuối cùng ánh xạ chúng vào hàm
$files = array('some-file.php', 'some-file2.php');

foreach ($files as $file) {
  if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file ) ) {
    echo 'The file ' . $file . ' was deleted!
'; } else { echo 'Couldn\'t delete the file ' . $file . '!
'; } }
8 bằng hàm
1.jpg
1-s.jpg
1big.jpg
2.jpg
2-s.jpg
2big.jpg
4.

Thí dụ

$files = array('some-file.php', 'some-file2.php');

foreach ($files as $file) {
  if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file ) ) {
    echo 'The file ' . $file . ' was deleted!
'; } else { echo 'Couldn\'t delete the file ' . $file . '!
'; } }
4

Mã bên dưới chỉ thực hiện việc xóa sau khi chúng tôi đã xác nhận rằng tệp tồn tại. Khác, nó sẽ trả về một thông báo lỗi mà tệp không tồn tại.

$files = array('some-file.php', 'some-file2.php');

foreach ($files as $file) {
  if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file ) ) {
    echo 'The file ' . $file . ' was deleted!
'; } else { echo 'Couldn\'t delete the file ' . $file . '!
'; } }
5

Nếu bạn có nhiều tệp mà bạn muốn xóa và lưu tên của chúng trong bảng cơ sở dữ liệu hoặc trong một mảng, bạn có thể lặp lại mã trên trong một thời gian hoặc vòng lặp foreach như trong ví dụ dưới đây.

Xóa nhiều hoặc tất cả các tệp trong 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 thức này, chúng tôi sử dụng hàm

if (file_exists($file1)) 
{
unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file1 );
clearstatcache();
}
8 để lấy tên của tất cả các tệp trong thư mục. Sau đó sử dụng tệp FormEach để lặp lại thông qua các tên tệp. Sau đó, chúng tôi sử dụng chức năng
if (file_exists($file1)) 
{
unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file1 );
clearstatcache();
}
9 để kiểm tra xem tên của tệp có hợp lệ hay không và cuối cùng là
$files = array('some-file.php', 'some-file2.php');

foreach ($files as $file) {
  if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file ) ) {
    echo 'The file ' . $file . ' was deleted!
'; } else { echo 'Couldn\'t delete the file ' . $file . '!
'; } }
8 để xóa các tệp như được hiển thị trong ví dụ dưới đây:

$files = array('some-file.php', 'some-file2.php');

foreach ($files as $file) {
  if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file ) ) {
    echo 'The file ' . $file . ' was deleted!
'; } else { echo 'Couldn\'t delete the file ' . $file . '!
'; } }
6

Phương pháp 2

Trong phương thức này, chúng tôi tạo danh sách tất cả các tệp trong thư mục của chúng tôi bằng hàm

if (file_exists($file1)) 
{
unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file1 );
clearstatcache();
}
8, lọc danh sách đó bằng hàm
1.jpg
1-s.jpg
1big.jpg
2.jpg
2-s.jpg
2big.jpg
2 và cuối cùng ánh xạ chúng vào hàm
$files = array('some-file.php', 'some-file2.php');

foreach ($files as $file) {
  if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file ) ) {
    echo 'The file ' . $file . ' was deleted!
'; } else { echo 'Couldn\'t delete the file ' . $file . '!
'; } }
8 bằng hàm
1.jpg
1-s.jpg
1big.jpg
2.jpg
2-s.jpg
2big.jpg
4.

$files = array('some-file.php', 'some-file2.php');

foreach ($files as $file) {
  if ( @unlink ( $_SERVER[DOCUMENT_ROOT]."/".$file ) ) {
    echo 'The file ' . $file . ' was deleted!
'; } else { echo 'Couldn\'t delete the file ' . $file . '!
'; } }
7

Bạn có thể đơn giản hóa mã trên thành một dòng như dưới đây: