|
Images mit der Funktion getimagesize überprüfenGrafiken, Images, Bilder prüfen und überprüfen, Titel
und Text enthalten einiges an doppelt Gemoppelten, doch dies soll in diesem Beitrag mal
erlaubt sein. Warum? Jeder, der zuweilen CSV-Dateien von unterschiedlichen Anbietern in
eine Datenbank einliest oder XML-Dateien von anderen Servern über Schnittstellen
verarbeitet, steht mitunter vor dem Problem, dass an Stelle einer Grafik oder Images bei
der Ausgabe eine optisch scheinbar vertiefte Fläche auf der Webseite entsteht, in der
dann ein kleines rotes Kreuz auf weißem Grund erscheint. Doch damit nicht genug, selbst
wenn Bilder vorhanden sind, so befinden sich mitunter darunter einige Images, die von der
Größe her das Layout der Seiten sprengen. <?xml version="1.0" encoding="ISO-8859-1" ?>
- <Beginn>
- <Bilder>
<Images>http://www.seo-welten.de/images/seohead.jpg</Images>
</Bilder>
</Beginn>
Nun kann diese kleine XML-Datei mit Hilfe von PHP und
SimpleXML wie folgt ausgelesen werden. Bei DOM/XML, ebenso beim Auslesen einer Datenbank
sowie bei der Verwendung ähnlicher Scripte mit einer Ausgabe für Images, bleibt das
Prinzip weitestgehend das selbige. <?php $daten = file_get_contents("http://www. ...de/ordnername/imagetest.xml"); $imagedaten = simplexml_load_string($daten); if($imagedaten->Bilder->Images){ $Images = ($imagedaten->Bilder->Images); @$format = getimagesize($Images); if(!$format) {echo "Grafik konnte nicht geladen werden."; } else {$height = $format[1]; $width = $format[0]; if ($height > 250){$height = 250; $prozent = ($format[1] / $height); $width = ($format[0] / $prozent); } if ($width > 450){$width = 450; $prozent = ($format[0] / $width); $height = ($format[1] / $prozent); } echo "<img src=\"".$Images."\" height=\"".round($height)."\" width=\"".round($width)."\">"; } } else { echo "Leider kein Bild vorhanden."; } ?> Wenn eine Grafik zwar vorhanden ist, diese nur zu groß, so kann diese wie bereits erwähnt auf ein erträgliches Maß reduziert werden. Dazu sind lediglich die Zahlenwerte entsprechend anzupassen, wie die nachfolgende Ausgabe des Headbanners (seohead.jpg) beweist. Vor allen dann, wenn es um den Erhalt eines einheitlichen Seitenlayouts geht, könnte eine derartige Vorgabe durchaus sinnvoll sein.
Insofern keine Skalierung der Grafiken erwünscht oder vorgesehen ist, die Abfrage nur der Überprüfung der Bilder auf Vorhandensein dienen und lediglich die Höhe und Breite des Images ausgegeben werden soll, lässt sich das Listing etwas verkürzen. In der Variablen $format wird beim Aufruf der Funktion getimagesize ein Array gescheichert, in dem unter dem Schlüssel[3] alle erforderlichen Angaben mit den Namen der Attribute und dessen Werte enthalten sind: <?php $Images = "../ordnername/fehlendesbild.jpg"; @$format = getimagesize($Images); if(!$format) {echo "Grafik konnte nicht geladen werden."; } else {echo "<img src=\"".$Images."\" ".$format[3]." alt=\"Testbild\">"; } ?> Wer sich noch über weitere Möglichkeiten informieren möchte, die mit der Funktion getimagesize realisierbar sind, wird eventuell auf dieser sehr empfehlenswerten Seite fündig. Images mit dem JavaScript Event-Handler onError prüfenGrafiken und Bilder können auch clientseitig mit dem JavaScript Event-Handler onError auf Vorhandensein überprüft werden. Eine Möglichkeit dazu sieht wie folgt aus: <img src="fehle.jpg" width="140" height="180" onError="this.src = 'ersatzbild.jpg';"> Der Nachteil der vorausgehenden Schreibweise liegt jedoch darin, dass der Event-Handler onError eigentlich nichts in einem HTML-Img-Tag verloren hat und das Dokument anschließend nicht mehr valide wäre (zumindest bei 4.01 Transitional und bei XHTML verhält es sich so). Dazu sollte der Leser wissen, dass ein Event-Handler als Bindeglied zwischen JavaScript und HTML dient. Nach dem HTML-Standard ist der Event-Handler onError im Img-Tag nicht erlaubt, nach JavaScript hingegen ist er im IMG-Tag erlaubt. Übertragen wir nun die Bereitstellung des Bildes oder eines Ersatzbildes gänzlich JavaScript, so meckert kein Validator mehr. Das obige Beispiel müsste dazu wie folgt abgeändert werden, wobei weitere Attribute, wie Alt, Heigt und Width hier nur der Übersichtlichkeit wegen nicht mit aufgenommen wurden. <script type="text/javascript"> Kleine Tipps: Bei eigenen Test das @ AT-Zeichen vor der Variablen bitte nicht entfernen, da mit Hilfe dieses AT-Zeichen Fehlermeldungen des Servers unterdrückt werden. Ein zweiter Tipp, Lesen bildet und ein gutes Fach- oder Sachbuch hat noch niemandem geschadet. Unsere Empfehlung zum Thema:
|
Finden und - Optimierung -
Übersicht Amazon Web
Service Images/Bilder prüfen |
||||||||||||
Copyright © 2008 - Verlag Horst Müller - Stendal | Datenschutz | Nutzungsbedingungen | ||||||||||||||