โจทย์ปัญหาคือเมื่อมีการแก้ไขรูปโปรไฟล์ โดยการ uplaod ขึ้น server แล้ว browser จำ cache รูปเดิม จะทำอย่างไรให้ browser รู้ว่าเป็นรูปภาพใหม่ ดังนั้นเราจะต้องใส่ timestamp เข้าไปตอนแสดงผลรูปภาพด้วย

image.jpg?12345566

ดังนั้น timestamp ของการแก้ไขรูปภาพน่าจะเหมาะสมที่สุด โดย filemtime() มีลักษณะการใช้งานดังนี้

<?php

$filename = 'somefile.jpg';
if (file_exists($filename)) {
    echo $filename.'?'.filemtime($filename);
}
//somefile.jpg?15637367483
?>

ตัวอย่างหลังจากมีการ upload รูปโปรไฟล์ใหม่แล้ว เมื่อมีการเรียกการแสดงผลสามารถเรียกดังนี้

<img src="<?=$profile->photo.'?'.filemtime($profile->photo)?>" />

 

มานพ กองอุ่น

มานพ กองอุ่น : Developer

ความคิดเห็น

หากบทเรียนรู้มีความผิดพลาดประการใด หรือมีข้อเสนอแนะกรุณาแจ้ง contact@programmerthailand.com