Grafik auf Vorhandenheit überprüfen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Grafik auf Vorhandenheit überprüfen

    Hallo.
    Ich habe ein gut laufendes Partnerscript auf meiner Seite laufen. Leider habe ich immer wieder Partner, die es nicht schaffen, ihren Banner richtig einzutragen bzw. hochzuladen, also muss ich das wieder ausbaden.
    Ich habe nun einen Banner, der anzeigt, dass keine gültige URL angegeben wurde. Nun muss ich überprüfen, ob der Banner auf den Servern meiner Partner vorhanden ist.
    Das habe ich nun so:

    Quellcode

    1. if(file_exists($row["bannerurl"])) {
    2. echo '<img src="'.$row["bannerurl"].'" border="0" alt="'.$row["titel"].'">';
    3. } else {
    4. echo '<center><img src="../images/no_banner_available.jpg" border="0" alt="'.$row["titel"].'"></center>';
    5. }

    Leider geht das nicht. Er zeigt mir alles als nicht vorhanden an. Hat da jemand eine bessere Lösung?
    Ich bedanke mich schon einmal im Vorraus!

    Florian :D
  • [phpdoc]file_exists[/phpdoc]
    Anmerkung: Diese Funktion kann nicht mit entfernten Dateien arbeiten, da der Zugriff auf die Datei, die bearbeitet werden soll, über das Dateisystem des Servers möglich sein muss.

    Schau dir mal diese Funktion an - dann kannst du auch sicher sein, dass es sich um ein Bild handelt.
    [phpdoc]getimagesize[/phpdoc]

    Quellcode

    1. <?php
    2. print_r(getimagesize('http://www.easy-coding.de/banner.gif');
    3. ?>


    Ich hoffe übrigens du machst die Überprüfung nicht bei jedem Aufruf der Seite. Das kostet den Besucher Ladezeit und deinen Partner Traffic.
  • [phpdoc]fsockopen[/phpdoc]

    Kannst ja den Header überprüfen, ob das Bild existiert oder nicht. Ich wollte erst fopen empfehlen, aber das dauert zu lange. Na ja, eigentlich ist beides nicht wirklich die Lösung, deine Partner sollten besser ihre Banner ordnungsgemäß auf den Server laden :P

    Gruß,
    David
  • Hallo ZeitenWandler,

    bei Selfhtml gibt es einen Artikel, da werden z. B. auch die Nachteile. Ich weiß nicht mehr wo, habe aber gehört, dass fsockopen schneller ist. Kanns aber nicht mit Sicherheit bestätigen. Kansnt ja mal mit microtime() austesten, was schneller ist.

    also

    Quellcode

    1. <?php
    2. $start = microtime();
    3. /**
    4. * Hier kommt dann der ganze Code hin
    5. */
    6. $end = microtime();
    7. $diff = $end - $start;
    8. echo $diff;
    9. ?>
    Alles anzeigen

    Mit fsockopen kannst du auf ejden Fall besser auf Probleme antworten, z. B. auf verschiedene HTTP-Responses (404 oder so).

    Gruß,
    David