file_exists - Nur nach Dateiendung prüfen?

absyrtos

Mitglied
Hallo,

auf meiner Seite werden nach einer Datenbankabfrage bestimmte Bilder ausgegeben. Zu manchen Daten die abgefragt werden fehlt in meinem Image Ordner aber noch das passende Bild. Es erscheint an dieser Stelle als ein [x] - Nun möchte ich aber, dass anstelle des [x] ein Bild (z.B. noimg.png) ausgegeben wird. So bin ich vorgegangen:

Code:
$file =  ".png";
if (file_exists($file)) {
    echo "<div class=\"pet\"><div class=\"picture\"><a href=\"petdb.php?colour=".$colour2."&amp;pet=".$pet."\" onMouseover=\"gender".($zahl*2).".src='images/pets/".strtolower($pet)."_".strtolower($colour2)."_female".$file."'; gender".(($zahl*2+1)).".src='images/female.gif';\" onMouseout=\"gender".($zahl*2).".src='images/pets/".strtolower($pet)."_".strtolower($colour2)."_male".$file."'; gender".(($zahl*2+1)).".src='images/male.gif';\"><img src=\"images/pets/".strtolower($pet)."_".strtolower($colour2)."_male.png\" name=\"gender".($zahl*2)."\" alt=\"\" /><br />".$colour." ".$pet."</a> <img src=\"images/male.gif\" name=\"gender".(($zahl*2+1))."\" align=\"top\" alt=\"\" /><br /><i>".date("d.m.Y", $date)."</i></div></div>\n";     
} else {
    echo "<div class=\"pet\"><div class=\"picture\"><a href=\"petdb.php?colour=".$colour2."&amp;pet=".$pet."\" onMouseover=\"gender".($zahl*2).".src='images/pets/".strtolower($pet)."_".strtolower($colour2)."_female".$file."'; gender".(($zahl*2+1)).".src='images/female.gif';\" onMouseout=\"gender".($zahl*2).".src='images/pets/".strtolower($pet)."_".strtolower($colour2)."_male".$file."'; gender".(($zahl*2+1)).".src='images/male.gif';\"><img src=\"images/pets/noimg.png\" name=\"gender".($zahl*2)."\" alt=\"\" /><br />".$colour." ".$pet."</a> <img src=\"images/male.gif\" name=\"gender".(($zahl*2+1))."\" align=\"top\" alt=\"\" /><br /><i>".date("d.m.Y", $date)."</i></div></div>\n";     
}
Das Problem ist jedoch, dass dauernd noimg.png ausgegeben wird. Wie könnte ich es realisieren, dass nur das .png geprüft wird?
 
Prüfe einfach, ob genau die gesuchte Datei vorhanden ist:
PHP:
$file = 'images/pets/'.strtolower($pet).'_'.strtolower($colour2).'_male.png';
echo '<div class="pet"><div class="picture"><a href="petdb.php?colour='.$colour2.'&amp;pet='.$pet.'" onmouseover="gender'.($zahl*2).'.src=\'images/pets/'.strtolower($pet).'_'.strtolower($colour2).'_female'.$file.'\'; gender'.(($zahl*2+1)).'.src=\'images/female.gif\';" onmouseout="gender'.($zahl*2).'.src=\'images/pets/'.strtolower($pet).'_'.strtolower($colour2).'_male'.$file.'\'; gender'.(($zahl*2+1)).'.src=\'images/male.gif\';">';
if( file_exists($file) ) {
	echo '<img src="./images/pets/'.strtolower($pet).'_'.strtolower($colour2).'_male.png" name="gender'.($zahl*2).'" alt="" />';
} else {
	echo '<img src="./images/pets/noimg.png" name="gender'.($zahl*2).'" alt="" />';
}
echo '<br />'.$colour.' '.$pet.'</a> <img src="./images/male.gif" name="gender'.($zahl*2+1).'" align="top" alt="" /><br /><i>'.date("d.m.Y", $date).'</i></div></div>'."\n";
 
Das Problem ist aber, dass es einmal das _male.png und einmal das _female.png gibt.
Aufgrund des MouseOver Effektes müssen also beide geprüft werden. Deshlab hab ich es für sinnvoller gehalten, einfach nach der Endung zu prüfen.
 
Zuletzt bearbeitet:
Zurück