2013-06-27 24 views
0

我有一個網站,我檢查圖像大小以調整其周圍的各種HTML元素。圖片網址通過數據進入,並且遠程託管,因此我事先不知道圖片尺寸。我正在使用getimagesize,這似乎工作正常(雖然緩慢),但現在我看到一種情況,我從getimagesize獲得的圖像尺寸不是圖像文件的維度,我實際上最終得到。圖像URL並不是直接指向文件,而是指向提供圖像的腳本,因此我假設被服務的圖像文件在getimagesize檢查和實際下載之間發生了變化。遠程圖像服務器提供的文件不同於通過getimagesize訪問的文件

有沒有人處理過這個問題?是否有任何服務器端解決方案可以獲得正確的尺寸,或者在圖像加載後我需要轉到JS解決方案? Brian

+0

我會建議調整你的CSS,這樣你就不必在PHP或JS中處理它。在這裏發佈HTML代碼會有所幫助。 –

回答

0

更好的方法不是設置image.onload,這樣一旦加載圖像,您可以抓住實際的圖像大小並調整頁面呢?

+0

對不起,我明白了。圖像網址中存在HTML實體,它們通過getimagesize和實際下載以不同的方式處理。但是,鑑於我用getimagesize獲得的緩慢度,這些都是很好的建議。感謝您的迴應。 –

0

您可以將圖像文件下載到臨時文件,然後在該文件上調用getimagesize()

雖然根據documentation中的意見之一,這基本上是如何getimagesize($url)工作。所以我不確定你爲什麼會得到不同的維度。如果圖像文件在運行中發生變化,您的PHP腳本似乎沒有任何方式獲得瀏覽器可以看到的大小,因此您必須在圖像使用後使用JavaScript中的解決方案加載。

0

在數據中傳遞的圖像URL具有HTML實體,它們通過getimagesize和實際圖像下載得到不同的處理。

相關問題