2013-06-26 86 views
5

我不知道如何設置問題。我不知道下面的標籤是如何工作的...帶參數的圖像 - HTML

<img src="img.png?value=23"/> 

這個標籤工作正常。並正確渲染圖像。 value=23有一些影響嗎?或者它被瀏覽器忽略了?

我甚至不知道如何Google!是否像傳遞參數給圖像?如果是這樣的話,如何檢索value屬性。參數是否有意義

+0

最有可能它不會做任何事情,但你總是可以嘗試刪除它,看看是否有任何改變。我能想到的唯一可能的解決方案是在圖像更改時可以更改數字,以確保客戶端不使用緩存版本。 – Travesty3

+0

好!但我的問題是它有任何意義?或者它只是由瀏覽器igored? bcoz! HTML是最寬鬆的語言!一切都無故無效! – madhairsilence

回答

1

對於此示例,我不知道這是什麼意思 但它可能寫

<img src="path_img.png?<?php time() ?>" /> 

強迫你的瀏覽器下載的資源,而無需使用的緩存

+1

當然?任何文檔?鏈接?? – madhairsilence

+0

是,對於所有靜態資源(js,png ....) – cyrilkiller

-1

value=23不會被您的瀏覽器忽略,而是被服務器忽略。

這就像將參數傳遞給Web服務器一樣。對於圖像,它將被大部分忽略。

+0

你爲什麼低調? – Charles

+0

說服務器忽略它是錯誤的。這取決於服務器。 – Uooo

2

如果此圖像是以某種方式動態顯示的,則託管此圖像的服務器必須從PHP代碼生成圖像。

看看GD library,它可以讓你使用PHP來生成基於空白或其他圖像的圖像。必須傳遞該參數以將該值包含在圖像中(例如,包含文本「123」的圖像或以某種方式使用它進行計算的圖像,例如用戶ID)。

然後在服務器上的.htaccess重寫的.png擴展到.php(或者另一個),使它看起來像一個真正的形象,以一些圖書館和爬蟲,或腳本等

另一種選擇是,這是一個簡單的圖像,value被忽略,或者只是隨機確保圖像沒有被緩存。

2

如果服務器使用它,value=23只會有效。瀏覽器請求http://example.com/img.png?valud=23,所以服務器將看到參數。

例如,使用PHP,如果使用$_GET['value'],並且該變量會更改要發送的圖像,則需要value=23

參數通常與圖像一起發送以指定高度或寬度,或者確定加載哪個圖像。

+0

ok ..正如前面提到的@Travesty ..如果這個值是一個隨機數,或者任何隨機參數,將會「特意發信號」讓瀏覽器瞭解它的一個新圖像並避免緩存? – madhairsilence

+0

@madhairsilence就瀏覽器而言,如果你要求'img23.png'或'img.png?value = 23',並不重要:瀏覽器假設它是一個不同的文件,不管它是否真的是,所以它不會從緩存中加載,除非已經加載了'imp.png?value = 23'。 – Mooseman

1

確實如此!

例如,看看這塊旨在動態調整圖像大小的軟件。

http://imageresizing.net/docs/basics

如果做得正確,添加參數到圖像URL可以是非常有用的。

編輯:

正如其他人所指出的,你需要確保服務器知道如何處理額外的參數。在這種情況下,它打算調整大小/水印/旋轉圖像。它當然可以做其他奇妙的事情。

+0

這取決於託管圖像的服務器 - 如果它是動態生成的。你聽起來好像可以假定這個邏輯適用於任何地方。 – casraf

+0

@ChenAsraf,我編輯了答案來澄清答案。 –

+0

好的!只想確認!所以。瀏覽器甚至不知道該參數是什麼。它只是呈現圖像考慮?作爲一些參數!它與清除緩存沒有任何關係! – madhairsilence

6

它取決於服務器,如果你有png MIME類型作爲文本,並且你解析文件就好像它們是用php代碼的文本文件,那麼它就有效果。

這真的取決於服務器而不是瀏覽器的配置。

Morover,mod_rewrite可以用來更改php文件看起來像png的文件。

添加通過PHP解析器解析PNG文件 AddType application/x-httpd-php .png

mod_rewrite的

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_\-]*)\.png$ img.php?value=$1 

有了這些行asdfasdf.png會所以當你使用$_GET['value']asdfasdf.png這種情況下被視爲img.php?value=asdfasdf

img.php?value=asdfasdf。它會有效果。

如果服務器沒有配置做這樣的事情和圖像是圖像(是的,我知道它是燦爛的句子),那麼它對普通圖像沒有影響。

總結。

它不依賴於服務器配置上的瀏覽器

0

參數在網址主要用於獲取有關特定項目的一些信息,但可以在更多的其他方式使用。在談論圖像時,瀏覽器不會忽略參數value=23,但您正在使用的服務器將會。

但是,如果圖像是某種動態的,那麼它可能被用來改變圖像的URL或其他東西。