webForumDet fria alternativet

Ta ut bilder storlek, vad är bäst?

PHP

5 svar · 493 visningar · startad av vic

Medlem sedan apr. 2006244 inlägg
Frågan#1

Användare laddar upp bilder och jag undrar vilket att följande som anses vara bäst

1. Ta ut höjd och bredd på uppladdad bild och lägga till dessa värden i databasen.

2. Ta ut höjd och bredd när bilden skall visas

3. Strunta helt att ange höjd och bredd i IMG-taggen

Vill helst hålla databasen ren från massa onödig data men det hela hänger väl på hur arbetsam getimagesize() är

Medlem sedan mars 20025 907 inlägg
#2

Varför ska du skriva ut storleken i img-taggen öht?

Medlem sedan juli 2002630 inlägg
#3

Mans skriver storleken för att

  1. Man stödjer alla html-standarder som finns(!)
  2. Om bilden av någon anledning inte skulle laddas (borttagen av misstag eller liknande) bibehålls det reserverade utrymmet för bilden på sidan vilket gör att man inte riskerar att förstöra layouten på sidan för att en bild saknas.
Medlem sedan juli 2002630 inlägg
#4

http://se.php.net/getimagesize

Returns an array with 4 elements. Index 0 contains the width of the image in pixels. Index 1 contains the height. Index 2 is a flag indicating the type of the image: 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM. These values correspond to the IMAGETYPE constants that were added in PHP 4.3.0. Index 3 is a text string with the correct height="yyy" width="xxx" string that can be used directly in an IMG tag.

Du kan alltså använda index 3 för att få ut storleken när skriptet exekveras.

om du skriver

$info = getimagesize( "bild.jpg" );

kan du sedan använda

$info[3]

för att generera

echo "<img src=\"bild.jpg\" " . $info[3] . " />";

vilket i sig skapar html-snutten

<img src="bild.jpg" height="yyy" width="xxx" />

Glöm inte alt- och titletaggarna heller =)

Medlem sedan apr. 2006244 inlägg
#5

Ni missförstod min fråga. Jag tittade på en community-template häromdagen för att skaffa mig lite inspiration. Det jag störde mig på var att la in storleken på bilderna, som användarna laddade upp, i databasen. Jag undrade då om jag inte lika gärna kunde köra på getimagezise() varje gång en bild laddades eller om det, vad gäller prestanda, är mer effektivt att lägga in värdena direkt i databasen, alternativt skita totalt i att ange storleken i img-taggen

Medlem sedan mars 20025 907 inlägg
#6

Mest effektivt är naturligtvis att inte skriva ut storleken alls, men då kan du få de problem som tidigare konstaterats om bilden inte finns.

Näst mest effektivast borde vara att ha storleken angiven i databasen då du troligen bara sparar bilden en gång, men visar den betydligt oftare. Nackdelen med den lösningen är som du själv säger får du storleksdatan lagrad dubbelt i databasen (både i själva bilden och som i ren text).

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)