Regex für verschiedene img-Tags

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

  • Regex für verschiedene img-Tags

    Hi ihr alle,

    auch ich habe ein Problem mit den (von mir) verhassten Regex...

    ich habe verschiedene Texte, die mit einem WYSWYG Editor geschrieben werden in der Datenbank liegen. Es können natürlich auch Bilder vorhanden sein.

    Nun gibt es die Option, die Bilder aus der Datenbank (und vom Server)
    zu löschen.

    Wenn man eine solches Bild löscht, dann sollen die Bilder aus den Texten verschwinden. Sie liegen in folgenden Format vor:

    <img height="480" alt="Lageplan" src="http://www.domain.de/gallery/anfahrt.jpg" width="373"/>

    Mir ist klar, wie ich Regex suchen lassen "müsste", ich schaffe es aber nicht, einen Pattern zu erstellen...


    Es müsste ja so sein:
    Suche mir alles was mit
    <img änfängt, und mit /> aufhört und dazwischen irgendwo ein
    scr="http://www.domain.de/gallery/anfahrt.jpg" hat.

    Allerdings gibt es da eine schwierigkeit:

    1. Was ist, wenn es so aussieht:
    <img height="480" alt="Lageplan" src="http://www.domain.de/gallery/anfahrt.jpg" width="373"/><br/>


    Nunja, ich schaffe es nicht, solch ein Regex zu bauen. Wie gehe ich da am besten vor?



    Gruß

    David
    Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

  • #2
    \<img.*?src.*?/\>

    so?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Hi mrhappiness,

      da bekomme ich eine Fehlermeldung:

      Code:
      Warning: preg_match_all() [function.preg-match-all]: Delimiter must not be alphanumeric or backslash in /mnt/ja1/04/033/00000010/htdocs/administrator/functions.php on line 2896
      Array ( )
      Die Suche erfolgt so:

      PHP-Code:
                 while($t_content mysql_fetch_array($t_query)){
                      
      $suchmuster '\<img.*?src.*?/\>';
                      
      $zeichenkette $t_content['content'];
                      
      preg_match_all($suchmuster$zeichenkette$trefferPREG_OFFSET_CAPTURE);
                      
      print_r($treffer);
                      } 
      Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

      Kommentar


      • #4
        Ich habe keinen Delimiter angegeben
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Original geschrieben von mrhappiness
          Ich habe keinen Delimiter angegeben
          = du musst selber noch delimiter angeben
          Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
          var_dump(), print_r(), debug_backtrace und echo.
          Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
          Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
          Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

          Kommentar


          • #6
            Ich habe nun irgendwie versucht rumzuspielen....

            mit deinem Regex:

            PHP-Code:
            $suchmuster '#\<img.*?src.*?/\>#'
            Zeigt er mir tatsächlich alle Bilder an.

            Aber ich möchte ja später mittels

            preg_replace()

            das gewisse Bild durch ein dummy - Bild ersetzen.

            Also habe ich folgendes versucht:

            PHP-Code:
            $suchmuster '#\<img.*?src="http://domain.de/gallery/'.$image[0].'".*?/\>#'

            Ich habe bestimmt einen grundlegenden Denkfehler...


            Gruß

            David
            Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

            Kommentar


            • #7
              Darf ich noch auf eine Antwort hoffen?

              Ich bin kein Stück weitergekommen. Selbst der Versuch mich mit Regex anzufreunden, ist fehlgeschlagen. Ich verstehe es einfach nicht.
              Wäre nett, wenn mir jemand helfen könnte.



              Viele Grüße

              David
              Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

              Kommentar


              • #8
                Darf ich noch auf eine Antwort hoffen?
                Wenn du ne Frage stellst
                Wenn du nicht bald die. Fehlermeldung aus dem Codetag nimmst, sicher nicht!

                EDIT:
                ach, du darfst ja aus gutem grund nicht mehr editieren. Dann muss man diesen Thread wohl ignorieren?
                Zuletzt geändert von TobiaZ; 20.08.2005, 18:38.

                Kommentar


                • #9
                  OffTopic:

                  Also das mit dem Editieren ist meines Erachtens eine Überreaktion der Person, die das ausgeführt hat.
                  1. Ist das Ewigkeiten her.
                  2. Gibt es doch meines Wissens nach dafür nur eine Verwarnung.

                  Ich antworte öfters mal schnell auf Postings, was ja wohl eigendlich gewünscht sein sollte, oder?
                  Da passiert es in der Arbeit, dass man die PHP-Tags vergisst.
                  Nachdem ich x-mal darauf angesprochen wurde, habe ich diese nicht böswillige Signatur erstellt. Wenn das schon in der Form zensiert wird...




                  Wenn du ne Frage stellst
                  Ich meine mich erinnern zu können, eine Frage gestellt zu haben, und die "Nicht-Funktion" der Lösungsversuche gestern noch bestätigt.





                  Gruß
                  Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

                  Kommentar


                  • #10
                    Zitiere mal bitte. in der Zeit breche ich mal deinen Unsinncode um

                    Kommentar


                    • #11
                      Zitat1: Nunja, ich schaffe es nicht, solch ein Regex zu bauen. Wie gehe ich da am besten vor?
                      Zitat 2: Also habe ich folgendes versucht:
                      Zitat3: Ich bin kein Stück weitergekommen. Selbst der Versuch mich mit Regex anzufreunden, ist fehlgeschlagen. Ich verstehe es einfach nicht.
                      PHP-Code:
                      $suchmuster '#<img.*?src="http://domain.de/gallery/'.$image[0].'".*?/>#'
                      Ich habe bestimmt einen grundlegenden Denkfehler...
                      Wenn du das gemeint hast...

                      breche ich mal deinen Unsinncode um
                      Unsinncode?
                      Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

                      Kommentar


                      • #12
                        Hallo,

                        was genau möchtest du denn jetzt ersetzen? Einfach nur das Bild? Wenn ja - die komplette URL oder nur den Dateinamen? Oder was sonst?
                        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                        var_dump(), print_r(), debug_backtrace und echo.
                        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                        Kommentar


                        • #13
                          Hi,

                          ich möchte lediglich an der Stelle des "vorher existierenden" Bildes einen Dummy setzen. Dummy heißt:

                          aus
                          <img height="480" alt="Lageplan" src="http://www.domain.de/gallery/anfahrt.jpg" width="373"/>

                          wird dann:

                          <img height="200" alt="Lageplan" src="http://www.domain.de/gallery/deleted.jpg" width="200"/>

                          also im Grunde nur den Dateinamen und die Größenattribute.


                          Viele Grüße

                          David
                          Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

                          Kommentar

                          Lädt...
                          X