bild nicht da = nicht anzeigen

ggenesiss

Mitglied
hiho, ich habe ein frage.

Ich habe einen PHP Pfad, der immer ein bestimmtest Bild ladet.
Aber wenn das Bild nicht auf den Webspace vorhanden ist, kommt immer ein rotes X statt das Bild. Kann man es irgendwie schaffen, dass das X also das fehlende Bild nicht angezeigt wird?! Also statt dem X garnichts erscheint.

thx im vorraus
 
hi,

jo, indem du einfach zuerst prüfst, ob das bild vorhanden ist, wenn nicht, lässt du es auch nicht anzeigen.

bye
 
Es geht auch mit HTML/JavaScript:
Entweder (bin ich mir nicht sicher obs geht):
PHP:
<span id="ImBild">
    <img src="gewuenschtesbild.jpg" onError="window.document.getElementById('InBild').innerHTML='';">
</span>

Oder: (Dann muss man es allerdings gegen ein kleines unsichtbares Bild austauschen:
PHP:
<img src="gewuenschtesbild.jpg" onError="this.src='transparentgif.gif';">
 
Ich würde hier die JS-Variante vorziehen. Erstens wird so ermittelt, ob der Surfer auf das Bild zugreifen kann, und nicht der Server. Das Ergebnis ist zwar meistens identisch, aber eben nicht immer. Und zweitens kann so ein serverseitiger Check bei einer großen Anzahl von Bildern und hohen Latenzzeiten u.U. sehr lange dauern und damit den Seitenaufbau entsprechend unnötig verzögern.

Just my 0,02€ ;)
 
Original geschrieben von reima
Ich würde hier die JS-Variante vorziehen. Erstens wird so ermittelt, ob der Surfer auf das Bild zugreifen kann, und nicht der Server. Das Ergebnis ist zwar meistens identisch, aber eben nicht immer.

Hmm.. :-)
Laut frage geht es ja darum ein bestimmtes Bild zu laden, welches entweder auf dem webspace ist oder halt nicht. Sicherlich hast Du recht, aber in diesem spezifischen Fall geht es um die Ausgabe - und nicht um die Verfügbarkeit des Bildes für einen bestimmten User, oder täusche ich mich da?

Und zweitens kann so ein serverseitiger Check bei einer großen Anzahl von Bildern und hohen Latenzzeiten u.U. sehr lange dauern und damit den Seitenaufbau entsprechend unnötig verzögern.
Kann man cachen lassen (nicht pro aufruf, sondern zyklisch).

Aber gehen wir da jetzt nicht zu spezifisch dran? ;-]
 
Zurück