首頁  >  文章  >  後端開發  >  php中怎麼讓圖片沒有快取檔案格式

php中怎麼讓圖片沒有快取檔案格式

PHPz
PHPz原創
2023-04-12 15:06:32697瀏覽

PHP是一種廣泛使用的伺服器端腳本語言,您可以為Web應用程式編寫PHP程式碼並將其運行在伺服器上。在PHP中,有時會遇到一些圖片快取相關的問題,例如在瀏覽器中開啟某個網站時,它的圖片無法更新或變化很慢。這通常是由於瀏覽器或伺服器快取圖片導致的。因此,本文將為您介紹如何在PHP中讓圖片沒有快取檔案格式。

  1. 強制瀏覽器不快取圖片

預設情況下,瀏覽器會快取已經下載的圖片,這樣可以加快存取速度,但是也帶來了一些問題。在PHP中,您可以使用header()函數透過設定Cache-Control來控制瀏覽器的快取時間。例如:

<?php
header("Cache-Control: no-cache, no-store, must-revalidate"); //强制浏览器不缓存
header("Expires: 0"); //指定过期时间为0
?>

這樣,當伺服器回傳圖片時,會透過設定HTTP回應頭,告訴瀏覽器不要快取這張圖片,每次都從伺服器下載最新的圖片。

  1. 在圖片的URL中加入隨機字串

這種方法是透過在圖片的URL中加入隨機字串,來讓瀏覽器認為它是一張新的圖片,從而下載最新的圖片。隨機字串可以是一個時間戳記、一個UUID或一個隨機數。例如:

<?php
$img_url = &#39;http://example.com/images/logo.png?rand=&#39; . uniqid(); //在图片URL中添加一个唯一标识符
echo &#39;<img src="&#39; . $img_url . &#39;">';
?>

在這個例子中,透過在URL後面加上一個隨機數,每次載入圖片時都會下載一個新的圖片。

  1. 在伺服器中設定圖片無法快取

最後一種方法是在伺服器上設定圖片無法快取。在Apache伺服器中,可以透過在.htaccess檔案中加入以下程式碼來取消圖片的快取:

<FilesMatch "\.(jpg|png|gif)$">
  Header set Cache-Control "max-age=0, no-store"
</FilesMatch>

這段程式碼的意思是只對.jpg、.png和.gif檔案生效,設定回應頭Cache-Control為"max-age=0, no-store"。這樣就可以強制瀏覽器每次都從伺服器下載最新的圖片了。

總結

透過修改HTTP回應頭、在URL中加入隨機參數或在伺服器上設定回應頭,可以讓PHP中的圖片沒有快取檔案格式。這樣,無論在哪個瀏覽器中都可以顯示最新的圖片,為使用者帶來更好的體驗。

以上是php中怎麼讓圖片沒有快取檔案格式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn