ปัญหาคือ ไฟล์ที่ถูกสร้างขึ้นมาด้วยสคริปต์ PHP หรือสคริปต์อื่นๆ นั้นบางไฟล์ก็ไม่สามารถออกได้ หลายๆ คนคงเคยเจอ โดยเฉพาะ Discuz นี่ไฟล์ที่อยู่ใน attachments ลบไม่ได้เลย ผมเคยเจอครับ
เรามาทำความรู้จักกับไฟล์ประเภทนี้ก่อนนะครับ
ระบบไฟล์จะมี 3 ระดับ คือ
- sys ระบบ
- group กลุ่ม
- user ผู้ใช้
ส่วนใหญ่ไฟล์ที่ลบไม่ได้นั้นจะติดที่ permission หรือสิทธิ์ในไฟล์นั้นๆ
กรณีไฟล์ที่สร้างจาก script อาจจะได้ file owner เป็นอื่นๆ เช่น เป็นของ apache ซึ่งทำให้ไม่มีสิทธิ์ในการเข้าถึงไฟล์นั้นๆ จึงจำเป็นต้องใช้ script ช่วยในการ chmod
เพื่อให้ user อื่นเข้าถึงไฟล์นั้นๆ ได้ สคริปต์ที่จะใช้คือสคริปต์ของ PHP การทำงานคือ
chmod ไฟล์และโฟลเดอร์ก่อน
จากนั้นก็ ลบทันที่
<?php
function deldir($dir){
$current_dir = opendir($dir);
while($entryname = readdir($current_dir)){
if(is_dir("$dir/$entryname") and ($entryname != "." and $entryname!="..")){
deldir("${dir}/${entryname}");
}elseif($entryname != "." and $entryname!=".."){
chmod("${dir}/${entryname}", 0777);
unlink("${dir}/${entryname}");
}
}
closedir($current_dir);
chmod(${dir}, 0777);
rmdir(${dir});
echo "ลบเสร็จแล้วโว้ย";
}
?>
<?
deldir("ชื่อโฟลเดอร์"); // ใส่ชื่อโฟลเดอร์หรือชื่อไฟล์ที่ลบไม่ได้
?>
Save เป็น del.php
ใส่ชื่อโฟลเดอร์หรือชื่อไฟล์ที่ลบไม่ได้
ส่วนนี้สำคัญดังนั้นต้องดูให้ดีๆ ว่าโฟลเดอร์คุณที่จะลบถูกหรือเปล่า ดันหลงลบโฟลเดอร์ webboard ไปซวยนะครับ อย่ามาโทษกันนะ
กรณีรันไฟล์แล้วไม่ยอมลบให้ ก็เข้าไป chmod ไฟลหรือโฟรเดอร์นั้นให้เป็น 777 แต่ก่อน chmod ไม่ได้เพราะถูกจำกัดสิทธิ์หรือ permission เมื่อรันไฟล์ del.php แล้วสามารถ chmod ได้แล้ว
ต้นฉบับ
http://www.phpwindthai.net/read-htm-tid-1124.html 
ของพี่เบิร์ดเขียนไว้