Hãy xem những bước cần thực hiện để xóa tệp bằng phương pháp này. Trước hết, bạn nên tạo một danh sách tệp bằng phương thức global[]. Bước thứ hai là lặp lại danh sách đó. Sau đó, bạn nên kiểm tra xem đó có phải là tệp hay không. Và cuối cùng, đã đến lúc xóa tệp đã cho bằng phương thức unlink[]
Đây là một ví dụ
văn bảnHoặc bạn có thể chọn áp dụng một đoạn mã ngắn cho phương thức global[]. Đầu tiên, cần tạo danh sách tệp bằng phương thức global[]. Bước tiếp theo là triển khai phương thức array_filter[]. Sau đó, nó sẽ ánh xạ danh sách tới phương thức unlink[] với array_map
Đây là cách để làm điều đó
Trong khuôn khổ của phương pháp này, cần phải tạo một danh sách các tệp với DirectoryIterator. Sau đó, lặp lại nó. Sau đó, bạn nên xác thực các tệp trong quá trình kiểm tra xem thư mục có dấu chấm hay không. Cuối cùng, áp dụng tham chiếu phương thức getPathName, xóa tệp bằng unlink[]
Đây là một ví dụ
Trong đoạn mã này, chúng tôi đã chỉ cho bạn những cách phổ biến và hiệu quả nhất để xóa tệp khỏi thư mục bằng PHP
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
Đâ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
Hướng dẫn này sẽ giải thích hai cách xóa một thư mục trong PHP. Ở đây, chúng ta sẽ đối phó với hai kịch bản
Cái đầu tiên xóa một thư mục trống và cái thứ hai xóa một thư mục không trống
Sử dụng hàm rmdir[]
để xóa một thư mục trống trong PHP
Chúng ta có thể sử dụng hàm rmdir[]
để xóa một thư mục trống trong PHP. Hàm này là một hàm PHP dựng sẵn
Chức năng xóa thư mục chỉ khi không có nội dung bên trong nó. Chúng ta có thể cung cấp thư mục sẽ bị xóa làm tham số cho hàm rmdir[]
Hàm trả về true
trong trường hợp thành công và
C:\xampp\htdocs\newFolder
0 nếu khôngThư mục nên tồn tại để xóa một thư mục. Chúng ta sẽ sử dụng hàm
C:\xampp\htdocs\newFolder
1 để tạo một thư mục cho phần trình diễnHàm lấy tên đường dẫn làm tham số
Ví dụ: tạo một biến
C:\xampp\htdocs\newFolder
2 và lưu trữ tên đường dẫn của một thư mục sẽ được tạo. Tiếp theo, sử dụng hàm C:\xampp\htdocs\newFolder
1 với tham số là C:\xampp\htdocs\newFolder
2Mã ví dụ
________số 8_______
Ví dụ mã trên tạo một thư mục
C:\xampp\htdocs\newFolder
5 trong thư mục gốc của tài liệu PHP. Khi bạn in biến C:\xampp\htdocs\newFolder
2, đầu ra sẽ như thế này trong LinuxTrong Windows, đầu ra hơi giống như thế này
C:\xampp\htdocs\newFolder
Vì chúng ta đã tạo một thư mục, bây giờ là lúc xóa nó bằng cách sử dụng rmdir[]
Mã ví dụ
if[is_dir[$path]]{
rmdir[$path];
echo "the directory is deleted";
}
đầu ra
Chúng tôi đã kiểm tra xem thư mục có tồn tại hay không bằng cách sử dụng hàm
C:\xampp\htdocs\newFolder
8 và hàm rmdir[]
để xóa thư mục if[is_dir[$path]]{
rmdir[$path];
echo "the directory is deleted";
}
0 trong thư mục gốc của tài liệuSử dụng đệ quy để xóa thư mục không trống trong PHP
Như chúng ta biết rằng rmdir[]
chỉ xóa thư mục trống, chúng ta cần sử dụng chức năng đệ quy và rmdir[]
để xóa thư mục không trống trong PHP. Trong phương pháp này, chúng tôi sẽ sử dụng một vài hàm PHP như
if[is_dir[$path]]{
rmdir[$path];
echo "the directory is deleted";
}
3, if[is_dir[$path]]{
rmdir[$path];
echo "the directory is deleted";
}
4 và if[is_dir[$path]]{
rmdir[$path];
echo "the directory is deleted";
}
5Hàm
if[is_dir[$path]]{
rmdir[$path];
echo "the directory is deleted";
}
3 lấy nhiều mảng làm tham số và trả về một mảng có các giá trị chỉ tồn tại trên mảng tham số đầu tiênHàm
if[is_dir[$path]]{
rmdir[$path];
echo "the directory is deleted";
}
4 liệt kê tất cả các tệp và thư mục của một đường dẫn đã chỉ định. Hàm if[is_dir[$path]]{
rmdir[$path];
echo "the directory is deleted";
}
5 xóa tệp được chỉ định trong tham số của nóKhái niệm đằng sau việc xóa một thư mục xử lý đệ quy với việc trước tiên tìm tất cả các tệp và thư mục bên trong một thư mục. Sau đó, một vòng lặp được tạo để duyệt qua tất cả nội dung bên trong thư mục mẹ
Thao tác đệ quy được áp dụng cho từng thư mục bên trong thư mục mẹ cho đến khi đạt đến độ sâu. Ở độ sâu, tệp bị xóa bằng hàm
if[is_dir[$path]]{
rmdir[$path];
echo "the directory is deleted";
}
5Chương trình quay lại đường dẫn đã duyệt và xóa tất cả các tệp. Sau khi xóa tất cả các tệp, cuối cùng, thư mục mẹ cũng bị xóa
Hãy xem xét một kịch bản trong đó cấu trúc thư mục trông như thế này
testFolder
├── abc.png
├── abc.text
└── sub
└── abc.jpeg
Ví dụ mã dưới đây xóa đệ quy
testFolder
├── abc.png
├── abc.text
└── sub
└── abc.jpeg
0Mã ví dụ
function deleteDirectory[$path]{
$files = array_diff[scandir[$path], array['.','..']];
foreach[$files as $file]{
[is_dir["$path/$file"]] ? deleteDirectory["$path/$file"] : unlink["$path/$file"];
}
return rmdir[$path];
}
$path =$_SERVER['DOCUMENT_ROOT']."/testFolder";
deleteDirectory[$path];
Ở đây, hàm
testFolder
├── abc.png
├── abc.text
└── sub
└── abc.jpeg
1 là một hàm do người dùng định nghĩa, nhận tham số C:\xampp\htdocs\newFolder
2, là tên đường dẫn của thư mục sẽ bị xóa. testFolder
├── abc.png
├── abc.text
└── sub
└── abc.jpeg
0 là C:\xampp\htdocs\newFolder
2 được cung cấpĐầu tiên, hàm
if[is_dir[$path]]{
rmdir[$path];
echo "the directory is deleted";
}
4 lồng nhau thực thi. Nó liệt kê tất cả nội dung của thư mục testFolder
├── abc.png
├── abc.text
└── sub
└── abc.jpeg
0 dưới dạng một mảngArray [ [0] => . [1] => . [2] => abc.png [3] => abc.text [4] => sub ]
Tiếp theo, chúng ta đã sử dụng hàm
if[is_dir[$path]]{
rmdir[$path];
echo "the directory is deleted";
}
3 để loại bỏ testFolder
├── abc.png
├── abc.text
└── sub
└── abc.jpeg
8 và testFolder
├── abc.png
├── abc.text
└── sub
└── abc.jpeg
9 khỏi mảng trên. Dấu chấm đơn đại diện cho thư mục hiện tại, trong khi dấu chấm kép đại diện cho thư mục mẹKết quả là, mảng
function deleteDirectory[$path]{
$files = array_diff[scandir[$path], array['.','..']];
foreach[$files as $file]{
[is_dir["$path/$file"]] ? deleteDirectory["$path/$file"] : unlink["$path/$file"];
}
return rmdir[$path];
}
$path =$_SERVER['DOCUMENT_ROOT']."/testFolder";
deleteDirectory[$path];
0 chứa function deleteDirectory[$path]{
$files = array_diff[scandir[$path], array['.','..']];
foreach[$files as $file]{
[is_dir["$path/$file"]] ? deleteDirectory["$path/$file"] : unlink["$path/$file"];
}
return rmdir[$path];
}
$path =$_SERVER['DOCUMENT_ROOT']."/testFolder";
deleteDirectory[$path];
1, function deleteDirectory[$path]{
$files = array_diff[scandir[$path], array['.','..']];
foreach[$files as $file]{
[is_dir["$path/$file"]] ? deleteDirectory["$path/$file"] : unlink["$path/$file"];
}
return rmdir[$path];
}
$path =$_SERVER['DOCUMENT_ROOT']."/testFolder";
deleteDirectory[$path];
2 và function deleteDirectory[$path]{
$files = array_diff[scandir[$path], array['.','..']];
foreach[$files as $file]{
[is_dir["$path/$file"]] ? deleteDirectory["$path/$file"] : unlink["$path/$file"];
}
return rmdir[$path];
}
$path =$_SERVER['DOCUMENT_ROOT']."/testFolder";
deleteDirectory[$path];
3. Sau đó, chúng tôi sử dụng vòng lặp function deleteDirectory[$path]{
$files = array_diff[scandir[$path], array['.','..']];
foreach[$files as $file]{
[is_dir["$path/$file"]] ? deleteDirectory["$path/$file"] : unlink["$path/$file"];
}
return rmdir[$path];
}
$path =$_SERVER['DOCUMENT_ROOT']."/testFolder";
deleteDirectory[$path];
4 để lặp qua các tệp và thư mục nàyTrong vòng lặp, chúng tôi đã kiểm tra xem iterable có phải là một thư mục không. Nhưng, hai mục đầu tiên không phải là
Vì vậy, chúng được loại bỏ bằng cách sử dụng hàm
if[is_dir[$path]]{
rmdir[$path];
echo "the directory is deleted";
}
5. Iterable thứ ba function deleteDirectory[$path]{
$files = array_diff[scandir[$path], array['.','..']];
foreach[$files as $file]{
[is_dir["$path/$file"]] ? deleteDirectory["$path/$file"] : unlink["$path/$file"];
}
return rmdir[$path];
}
$path =$_SERVER['DOCUMENT_ROOT']."/testFolder";
deleteDirectory[$path];
3 là một thư mục, đáp ứng điều kiệnVì vậy, hàm
testFolder
├── abc.png
├── abc.text
└── sub
└── abc.jpeg
1 được gọi đệ quy. Lần này, thư mục chỉ có một tệp duy nhất bên trong nóTệp bị xóa với hàm
if[is_dir[$path]]{
rmdir[$path];
echo "the directory is deleted";
}
5 như các tệp khác. Cuối cùng, việc thực thi thoát khỏi vòng lặpTiếp theo, thư mục
function deleteDirectory[$path]{
$files = array_diff[scandir[$path], array['.','..']];
foreach[$files as $file]{
[is_dir["$path/$file"]] ? deleteDirectory["$path/$file"] : unlink["$path/$file"];
}
return rmdir[$path];
}
$path =$_SERVER['DOCUMENT_ROOT']."/testFolder";
deleteDirectory[$path];
3 bị xóa bằng hàm rmdir[]
. Sau đó, cây đệ quy đi ngược lại và thư mục mẹ testFolder
├── abc.png
├── abc.text
└── sub
└── abc.jpeg
0 bị xóa