Ich suche einen Code bzw. einen der mir einen solchen Code macht:
Wenn ein Link nicht die endung .gif,.jpg,.png,.bmp oder der link nicht aufrufbar ist soll ein alternativbild angezeigt werden. (Die Links sind in einer MySQL-DB)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /pfad/zur/alternativgrafik.endung
So in etwa könnte das aussehen. Natürlich ungetestet.
Kann natürlich noch auf die von dir genannten Formate eingeschränkt werden.
Nun ja, danke werd ich auch noch gebrauchen. So wie das aussieht ist das für jedes Bild. Ich möchte das aber nur in einer bestimmten Datei und wenn da ein Bild nicht angezeigt werden kann, soll automatisch das ‘src’ im img-element geändert werden.
Der Apache hat eine Funktion, die sich 'content negotiation’
nennt. Da kann man die Dateinamen ohne Endung in (X)HTML
angeben und browser und server einigen sich dann irgendwie
selbständig, was gesendet wird, gegebenenfalls eben ein auf
dem Apache definiertes Ersatzformat.
Mußt nach dem Stichwort im Handbuch vom Apachen mal suchen,
da sollte das im Detail erkärt sein, wie man das ansteuert.
Kann natürlich auch sein, daß solch ein Modul auf dem
verwendeten server nicht verfügbar ist, das sollte man dann auch
noch in Erfahrung bringen.
…src="<?php echo (is_file($url) && in_array($ext['extension'],array('jpg','gif','png','bmp'))) ? $url : $urlersatzgrafik; ?>"…[/code]
geändert
die echos waren an der falschen stelle.
die erste Zeile
$ext = pathinfo($url);
ermittelt informationen über die angegebene URL und gibt sie in ein array zurück.
“extension” ist dabei die Dateiendung. (Mehr Infos)
vielleicht liegts daran, dass die dateiendung großgeschrieben ist, hier mal eine kleine Veränderung (ich hab auch noch ‘jpeg’ hinzugefügt, was als Dateiendung neben ‘jpg’ ebenfalls erlaubt ist).
Wobei ich gerade sehe, dass die sache mit is_file($url) gar nicht klappen kann, wenn es sich tatsächlich um eine URL handelt…
wo kommt die $url her?
ist das ein absoluter oder relativer Pfad zu einer Datei?
is_file() erwartet nämlich den Dateinamen entweder relativ zum Verzeichnis in dem das php-script ausgeführt wird(!), oder aber absolut mit kompletter dateisystem-pfadangabe.