โจทย์ปัญหาคือเมื่อมีการแก้ไขรูปโปรไฟล์ โดยการ 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)?>" />
ความคิดเห็น