Archief - PHP: controleren of een image bestaat

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Cakeman

Legacy Member
Wat is de snelste manier om te kijken of een image bestaat?

file_exists() geeft bij mij altijd false terug, ookal bestaat de image en klopt de url.
Ik gebruik bijvoorbeeld volgende code:
PHP:
if(file_exists('http://www.mijnsite.be/mapje/image.jpg')) {
    echo "OK, afbeelding bestaat.";
}
else {
    echo "Fout. De afbeelding lijkt niet te bestaan.";
}
Dan geeft die altijd "Fout. De afbeelding lijkt niet te bestaan." weer zelfs al kan ik gewoon naar die URL surfen.

Via Google heb ik deze code gevonden, maar die is afschuwelijk traag:
PHP:
<?php
$TheImage = "http://www.uk-present.co.uk/images/logo.gif";
if (@fclose(@fopen("$TheImage", "r"))) {
$TheImage = "$TheImage";
}
else {
$TheImage = "http://www.uk-present.co.uk/images/120x60-noimage.gif";
}
?>

dJeez

Legacy Member
Voor file_exists moet je uiteraard het absolute of relatieve pad op de server z'n filesystem gebruiken, geen URL.

RTFM

dJeez

Legacy Member
killgore zei:
Edit: na djeez zen post: Dit werkt normaal ook met url's.
Toch niet, check de docs ffs. Het enige type URLs waar 't mee omkan zijn nl. file:// en php:// URLs.

fopen kan wel http:// URLs openen.

killgore

Legacy Member
dJeez zei:
Toch niet, check de docs ffs. Het enige type URLs waar 't mee omkan zijn nl. file:// en php:// URLs.

fopen kan wel http:// URLs openen.
ik heb docs gecheckt en bij mijn weten kent getimagesize WEL extern urls.

Kheb et ffs zelf gebruikt vo gallery scripts.

edit:
PHP:
<?php
if(!($a=getimagesize("https://www.beyondgaming.be"))) echo "FUCK";
else echo $a[0]."x".$a[1];
?>
gaf mij mooi de afmetingen van deze mooie header :).

Cakeman

Legacy Member
Ik heb het net even getest.
getimagesize() werkt inderdaad zeer snel. Tenminste, als de afbeelding bestaat. Bestaat deze niet, dan duurt het een 5 seconden voor de rest van de pagina geladen wordt.

Ik heb ook na dJeez zijn post even het absolute server path met file_exists gebruikt dat werkt prima. Zelfs wanneer de afbeelding niet bestaat is er geen vertraging.

Edit: bedankt voor de snelle hulp allebei :)

dJeez

Legacy Member
killgore zei:
ik heb docs gecheckt en bij mijn weten kent getimagesize WEL extern urls.
:offtopic: Ik had het dan ook over de file_exists functie, en niet over getimagesize (check de link achter RTFM :p). Ik dacht dat jij bedoelde dat file_exists wel werkte met URLs en dat is dus niet het geval - spraakverwarring maw.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan