หาเวลา timestamp ในการแก้ไขไฟล์ด้วย filemtime()

wave
มานพ กองอุ่น 11 ก.ค. 2018 22:56:27 4,356

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

 


ความคิดเห็น

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