Testen ob Bild vorhanden
fan
- php
0 Jens0 fan
0 Thomas Luethi0 Tom
Hallo,
wie kann man mit PHP testen, ob ein Bild auf einem ext. Server vorliegt und ggf ausgeben.
Momentan binde ich die Bilder einfach mit <img ... > ein und habe immer ein "Fehlerbild", wenn es dort nicht vorhanden ist. Das möchte ich vermeiden.
Gruss
fan
versuche es mal so:
<?PHP
$fp=@fopen("http://www.domain.de/bild.jpg","r");
if(!$fp){
$variabel="Bild offline";
}else{
$variabel="Bild online";
}
?>
dann hast du in $variabel den Status vom Bild
Hallo,
danke an euch für Eure Hilfe. Ich werde es so bald wie möglich ausprobieren.
Gruß
fan
Hallo,
wie kann man mit PHP testen, ob ein Bild auf einem ext. Server vorliegt und ggf ausgeben.
Die von Jens vorgeschlagene - kurze und simple - Methode
mit fopen() hat einen kleinen Nachteil: Sie setzt voraus,
dass allow_url_fopen gesetzt ist.
http://www.php.net/manual/de/ref.filesystem.php#ini.allow-url-fopen
Diese Konfigurationsvariable kann zwar auch im Skript
selbst gesetzt werden mit ini_set(), aber PHP kann
offenbar so kompiliert werden, dass dies nicht moeglich ist.
http://www.php.net/manual/de/install.configure.php#install.configure.disable-url-fopen-wrapper
In dem Fall gibt es immer noch die Moeglichkeit, mit
fsockopen() eine HTTP-Head-Anfrage auf die URL zu machen.
Wenn der Status Code == 200 ist, ist das Bild erreichbar.
Du kannst das Skript von Johannes Froemter entsprechend anpassen.
dclp-FAQ: Wie überprüfe ich Hyperlinks auf ihre Gültigkeit?
http://www.dclp-faq.de/q/q-code-links-testen.html
http://froemter.de/php/phpLinkCheck.phps
Gruesse,
Thomas
Hello,
man beschafft sich mit einem, HEAD-Request den Header für das Bild und schaut mit get_all_headers() rein und findet hoffentlich dann den Mime-Type für ein Bild vor.
Liebe Grüße aus http://www.braunschweig.de
Tom