ฟังก์ชั่น PHP สำหรับ ลบโฟลเดอร์ ที่มีไฟล์อยู่ภายใน (Delete not empty folder).

ฟังก์ชั่น PHP สำหรับ ลบโฟลเดอร์ ที่มีไฟล์อยู่ภายใน (Delete not empty folder).

ปกติบน ยูนิกส์นั้น การ ลบ ไฟล์หรือโฟลเดอร์สามารถทำได้โดยใช้คอมมานต์

rm -rf {file | folder}

แต่สำหรับการลบ โฟลเดอร์ นั้นอาจจะเป็นเรื่องที่น่าปวดหัวยิ่ง เนื่องจากฟังก์ชั่นในการลบ คือ rmdir นั้น. จะสามารถใช้ได้ก็ต่อเมื่อ โฟลเดอร์นั้นว่าง (ไม่มีไฟล์หรือโฟลเดอร์ย่อยภายใน) เอาหล่ะครับ อย่าเพิ่งถอดใจ ผมมีฟังก์ชั่นดีๆ มาเสนอทุกท่าน…. ไปดูโค๊ดกันเลย….

<?php
function rm($fileglob){
if (is_string($fileglob)) {
if (is_file($fileglob)) {
return unlink($fileglob);
} else if (is_dir($fileglob)) {
$ok = rm(”$fileglob/*”);
if (! $ok) {
return false;
}
return rmdir($fileglob);
} else {
$matching = glob($fileglob);
if ($matching === false) {
return false;
}
$rcs = array_map(’rm’, $matching);
if (in_array(false, $rcs)) {
return false;
}
}
} else if (is_array($fileglob)) {
$rcs = array_map(’rm’, $fileglob);
if (in_array(false, $rcs)) {
return false;
}
} else {
return false;
}
return true;

}

/* ——- Start delete folder backup folder in /home/bemore/public_html/quota/temp/ and it’s not empty!! ——*/
rm(’/home/bemore/public_html/quota/temp/backup’);

จากโค๊ดด้านบนเท่านี้คุณก็สามารถโฟลเดอร์่ที่มี ไฟล์หรือโฟลเดอร์ย่อย ๆ ได้โดยไม่ต้อง Recursive ให้ปวดหัวแล้วครับ

About the Author