2012-12-18 78 views
5

我的網站被設計成一個有趣的圖片網站,當用戶點擊任意按鈕,在同一頁上的PHP代碼生成一個新的隨機圖片,這是它是如何工作的。然而,我必須按F5按鈕才能獲得新圖像。PHP URL字符串,以避免瀏覽器緩存

我正在讀的另一個問題是人們使用get日期,並獲得在鏈路的末端產生的,以避免瀏覽器緩存時間查詢字符串,但是我無法弄清楚了我的生活。

我不是很好用PHP,所以請說,如果我只知道基本的網頁結構。謝謝!

+1

學會更好地去設置頭更好,比使用那'欺騙' – 2012-12-18 19:19:51

回答

4

你所描述被稱爲緩存斷路器,通常是一個隨機字符串或附加到URL的時間戳。當你引用你的形象,在前面加上這樣的:

echo get_random_image_url() . '?' . time(); 

這將導致URL看起來像這樣:

http://your.server.com/random.jpg?1355862360

注:get_random_image_url僅僅是一個例子,但我確定你明白了。

這個線程可能會感興趣:How to force a web browser NOT to cache images

+0

其實際引用了一個PHP文件,從我的託管中抽取一個隨機有趣的圖像。我很抱歉,我對CSS和html非常好,但我剛剛在幾個月前開始學習。任何更多的幫助將不勝感激。 –

0

這是很容易解決:例如, 檢查以下兩個鏈接:

http://cdn.arstechnica.net/wp-content/uploads/2012/10/06_Place_20773_1_Mis.jpg

http://cdn.arstechnica.net/wp-content/uploads/2012/10/06_Place_20773_1_Mis.jpg?randomValue

無論是兩個環節將是開放相同的圖像。

這是您的解決方案!你必須在你的圖像文件的末尾添加名稱爲隨機值:

image.png?<?php echo someRandom();?> 

這個社區或谷歌的方式來寫gemnerates隨機值的函數。

也有使用的解決方案是,suupose以下

<img id="funny" src="scripts/php_rand_image.php" /> 
<a href="javascript:changeImage('funny')">Get another image</a> 
<script> 
function changeImage(ob){ 
image = document.getElementById(ob) 
d = new Date(); 
image.src = image.src+'?'+d.getTime(); 
} 
</script> 
+0

我嘗試你的反應,因爲它似乎是最簡單的,謝謝你,但是當我把在網址的結尾,例如:在index.php文件的頁面不再顯示「」。任何反饋? –

+0

您必須注意:someRandom()是您必須編寫的自定義函數。 someRandom()應該作爲圖片url的後綴。另一方面,我建議使用JavaScript依賴的解決方案。 – SaidbakR

0

我想用頭比URL招

<?php 
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
?> 

http://php.net/manual/en/function.header.php

+0

太好了,我可以將它放在網頁結構的任何位置嗎?恩。頭,身體 –