$stringinfo = pathinfo($foo);
$bildinfo = getimagesize($foo);
Und das funktioniert? solange die Bilder im entsprechenden Verzeichnis liegen ja, aber in anderen fällen stimmt der Pfad nicht :)
$extensions = array('jpg','jpeg','jpe');
hier könntest du noch einen kommaspearierten String draus machen und das array mittels explode() und trim bilden - dann ist es einfacher wartbar (auch für normale Menschen). Zudem würde ich die Variable besser beschreiben "allowed_extensions" oder "valid_extensions" damit man sofort erkennt, worum es sich handelt.
$valid_extensions = 'txt,doc, xml';
if (!in_array(strtolower($stringinfo['extension']), $extensions)) {
die Bedingung innerhalb eines if kennt auch logische Operatoren - kein grund für den else-if-KRam
return false;
}
elseif (($bildinfo[mime]) == 'image/jpeg') {return true;
}
wenn das elseif nicht zutrifft, hat deine funktion keinen Rückgabewert. Da die Callback-Funktion nur "true" durchlässt und "nicht gesetzt" != true ist, stimmts trotzdem - der form halber würde ich aber dediziert immer true oder false zurückgeben.