Ystäväni pyysi minua tekemään pienen skriptin, joka tulostaa kuvia, jos niiden tiedostotyyppi on oikea. Tiedostotyypin kuuluisi olla GIF tai PNG. Ja nyt kysymys: miten tarkistan tiedostotyypin? Olen ajatellut systeemiä näin:
<?php if 'tiedostotyyppi' = GIF { echo <img src="kuva.gif">} elseif 'tiedostotyyppi' = PNG { echo <img src="kuva.png">} else { echo "Kuvia ei löydy"}
Eli 'tiedostotyyppi' paikalle tulisi tuo kuinka tiedostotyyppi tarkistetaan. Älysikö joku?
getimagesize() funktiolla tuo onnistuu. Katsopas tämä linkki:
https://www.php.net/manual/fi/function.
Kiitos. No entäpä jos on monta eri kuvaa jotka pitäisi saada tulostettua?
<?php if 'tiedostotyyppi' = GIF { echo <img src="kuva.gif"></br> echo <img src="kuva2.gif"> }
Meneekös se tuolla samalla getimagesize():llä?
Onko nyt niin, että sinulla on jossain kansiossa tiedostoja ja haluat tulostaa sieltä vain tietyn tyyppiset kuvat? Jos näin on, niin käyt vain loopissa kaikki tiedostot läpi ja tarkastat getimagesize() funktion avulla mitkä tiedostoista on haluamasi tyyppisiä kuvia ja tulostat ne. Voi toki olla, että ymmärsin ihan väärin mitä yrität.
Yksi tapa on tietty lukea vaikka globilla kaikki kansion tiedostot ja vaikka explodata tiedostonimi ja tarkastaa arrayn toinen alkio. Toiminee ihan hyvin, tosin tuolla getimagesizella voi tehdä muitakin tarkastuksia ja tulostella muillakin ehdoilla.
strrpos on nopeampi vaihtoehto kuin explode, path_info selkeämpi.
Syy miksi itse ainakin käyttäisin tuota getimagesize() on se, että se tiedostopääte ei varsinaisesti kerro, onko tiedosto kuva vai ei. Kuka vaan voi nimetä tiedoston uudelleen ja vaihtaa sen. Lisäksi jos tiedoston päätettä tarkistaa vaikkapa tuolla explode funktiolla kannattaa tarkistaa viimeinen alkio ei toista, koska tiedostonimi voi sisältää useita pisteitä, jolloinka se toinen alkio ei olekaan tiedoston pääte.
Aihe on jo aika vanha, joten et voi enää vastata siihen.