แนวทางการกำหนด expired header ให้กับรูปภาพ ด้วย php อย่างง่าย

เขียนเมื่อ 12 ปีก่อน โดย Ninenik Narkdee
header php รูปภาพ expired

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ header php รูปภาพ expired

ดูแล้ว 9,338 ครั้ง


 ตัวอย่างต่อไปนี้ เป็นแนวทางสำหรับการกำหนด expired header ให้กับรูปภาพ ที่แสดงในหน้าเว็บไซต์

ทำให้ บราวเซอร์เลือกใช้งานรูปภาพจากเครื่อง โดยดูจากวันที่ expired ของรูปภาพที่เรากำหนด ถ้ารูปที่อยู่
ในเครื่องหรือที่ cache ไว้ในตอนแรก ยังไม่หมดอายุ ก็จะทำการดึงรูปจากที่เครื่องมาใช้ แทนการไปโหลด
ที่ server ใหม่ทุกครั้ง 
 
1. สรัางไฟล์ index.php ตามโค้ดด้านล่าง แล้วในไปวางไว้ในโฟลเดอร์รูปภาพ
<?php
if(!isset($_GET['pic']) || $_GET['pic']==""){
	$_GET['pic']="photoNotAvailable.jpg"; // ชื่อรูปภาพที่ต้องการแสดงกรณีไม่มีรูป
}
function imgType($imgName){
	$imgName=strtolower($imgName);
	$imgTypeShow="";
	if(preg_match("/.gif/",$imgName)){
		$imgTypeShow="gif";
	}
	if(preg_match("/.png/",$imgName)){
		$imgTypeShow="png";
	}
	if(preg_match("/.jpg/",$imgName)){
		$imgTypeShow="jpeg";
	}
	if(preg_match("/.jpeg/",$imgName)){
		$imgTypeShow="jpeg";
	}		
	return $imgTypeShow;	
}
if(imgType($_GET['pic'])){
$last_modified_time = filemtime($_GET['pic']); 
$etag = md5_file($_GET['pic']); 
header("Content-type: image/".imgType($_GET['pic']).";");  
header("Cache-Control: must-revalidate");
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT"); 
header("Etag: $etag"); 
$offset = 60 * 60 * 24 * 30; // กำหนดอายุ 30 วัน ดูตัวคูณตัวหลังสุด * 30
$ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
header($ExpStr);
if($_GET['pic']!=""){
	if(is_file($_GET['pic'])){
		$abs_url="htttp://www.yourdomain.com/images/";// กำหนด path หรือตำแหน่งจริงของรูปภาพที่จะแสดง
		echo file_get_contents($abs_url.$_GET['pic']);
	}
}
}
?>
2. การใช้งาน ตัวอย่างรูปภาพตาม url นี้ https://www.ninenik.com/images/logo_01_Mon.gif
 
นำไฟล์ index.php ไปไว้ที่โฟลเดอร์ images
เรียกใช้งาน รูปภาพผ่าน url ใหม่เป็น 
 
https://www.ninenik.com/images/?pic=logo_01_Mon.gif
 
เท่านี้ก็จะได้รูปภาพที่มีการกำหนด expired header มาแสดง


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ











URL สำหรับอ้างอิง





คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )







เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ