img Link im Forumsbeitrag checken

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • img Link im Forumsbeitrag checken

    Hallo,

    in einem Forum werden öfter Bilder mittels img Tags eingefügt.
    Oftmals werden diese vom User im nachhinein von deren
    Server gelöscht, so daß eine Fehlermeldung kommt oder die
    Ladezeit sich erhöht.

    Hat jemand einen Lösungsansatz um festzustellen ob das Bild
    sich auf dem fremden Server noch befindet?
    Und falls nicht, daß dann stattdessen z.B. ein Text oder ein
    eigenes Ersatzbild erscheint?

    Für getimagesize müßte das Bild auf dem eigenen Server sein,
    also wird das überprüfen damit nicht gehen. Ist eventuell file_exist
    eine Lösung?

  • #2
    imho würde ich, wenn du schon externe Bilder erlaubst, eine socketverbindung zum Server aufbauen und einen Request nach dem Bild absetzen. Dann wertest du die Serverantwort aus und prüfst auf Status ok, falls ein 404-er zurückgegeben wird, weisst du dass das Bild nicht mehr existiert.

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      http://www.php-resource.de/forum/sho...threadid=63287

      Sollte Anregungen liefern

      Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
      sondern mit den Augen das Manual zu lesen.

      Kommentar


      • #4
        Hallo,

        vielen Dank für den Link, das kann ich gebrauchen.

        Kommentar


        • #5
          Hallo,

          habe das mit filesize probiert, geht nicht, dafür muß das
          Bild wohl im temp oder auf dem eigenen Server liegen.

          Also wie in Deinem Beispiel mit getimagesize aber Prüfung
          auf Flag, denn wenn Bild nicht auf dem Server, dann kein Flag:
          PHP-Code:
          function pic_check_size $text ) {

               
          $regex '=\[img\](.*)\[/img\]=Uis';
                
          preg_match_all $regex $text$erg );

                for (
          $i=0$i COUNT($erg) ; $i++ ) {
                  
          $info = @getimagesize($erg[1][$i]);
                   IF ( 
          $info[2] != ) {     //(1 = GIF, 2 = JPG, 3 = PNG, SWF = 4)
                     
          $reg '=\[img]'.$erg[1][$i].'\[/img]=Uis';
                     
          $to 'kein Bild';
                    
          $text preg_replace($reg,$to,$text);

                   }
                }
             return 
          $text;
           } 
          Funktioniert, wenn ich jedoch auf alle Flags prüfe mit

          || $info[2] != 1 || ..

          dann zeigt er bei allen Bildern den Alternativ_Text $to an.

          Wahrscheinlich nur ein Fehler im Code.

          Kommentar


          • #6
            natürlich ein fehler im code.

            weil du so einfach nicht prüfen kannst. warum das so ist, hast du selbst beschrieben.

            Kommentar


            • #7
              Hallo,

              in welcher Textzeile habe ich das beschrieben?

              Kommentar


              • #8
                Okay, hast du nicht. aber zwei Threads brauchen wir nicht.

                Kommentar

                Lädt...
                X