การใช้ function opendir readdir เพื่อแสดงไฟล์และโฟลเดอร์

ไม่ได้ใช้ readdir มานาน ตั้งแต่ลองหัดเขียนระบบ FTP ใหม่ๆ (ปัญหาคืออยากได้โปรแกรมอัพไฟล์ ที่เปิดไว้บนหน้าเว็บน่ะแหละ ขี้เกียจอัพผ่านโปรแกรม FTP) สมัยนั้นใช้ Dreamweaver บ้างก็ CuteFTP, WS FTP, BitKinex, FlashFXP, Filezilla แต่ชอบสุดๆ ก็คือ FlashFXP นี่ละ ถนัดมือ

เรื่องของวันนี้คือผมเปิดไฟล์จากระบบ checklist มันเป็นตัวยึกยือ ตามสเต็ปของ linux ซึ่งจำไม่ได้ว่ามันเก็บไฟล์ที่เป็น ด้วย charset แบบไหน ถึงได้ออกมาหน้าตาแบบนี้

ด้วยเหตุนี้เลยลองใช้ readdir เปิดดู พบว่ามันก็แสดงผลเป็น UTF-8 ได้นี่หว่า?? เริ่มงงกับตัวเอง

ขั้นตอนต่อไปคงได้เริ่มเขียนให้มันตรวจสอบว่าไฟล์ไหน มีอายุเกิน 2 เดือน หรือ 3 เดือน ให้แสดงรายการเพื่อลบไฟล์นั้นทิ้ง

* ขั้นต่อไปก็จะตั้ง cron ให้มันเช็คทุกๆ 1 สัปดาห์ และลบเองไปเลย

อธิบายเพิ่มเติมเกี่ยวกับ code

 

<?php
if ($handle = opendir('../_ath5/checklist-ath5/source')) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..") {
            echo "$entry<br>";
        }
    }
    closedir($handle);
}
?>

opendir(“ตำแหน่ง folder ที่ต้องการเปิดดู”);
# ต้องเป็น path เท่านั้น ไม่ใช้ URL

while เพื่อวนวูปให้มันอ่าน directory ซ้ำจนครบ

readdir(ตัวแปลที่เก็บค่าของ folder ที่ได้เปิดแล้ว)

if ($entry != “.” && $entry != “..”) {
# มันเป็นค่า default ของระบบ ถ้าเป็น . หรือ .. ให้ข้ามไป ไม่ต้องแสดงผล

closedir ปิดการเปิด เพื่อเคลียร์ค่าหน่วยความจำ