Kleine Frage zu preg_replace

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

  • Kleine Frage zu preg_replace

    Ich hab ein Array mit Bildern

    [img][1] = 'image1';
    [img][2] = 'image2';
    [img][3] = 'image3';

    in der datenbank habe ich einen text - bsp:

    "Hallo {image} mal wieder toll dich zu {image} ..."

    nun soll per peg_replace ein image nach dem anderen ersetzt werden. 1. fund = image 1 2. fund = image 2 u.s.w.

    mit folgendem Code finde ich ja diese Bereiche, wie kann ich aber nun nacheinander die Bilder aus dem array ersetzen?
    PHP-Code:
    $suchmuster '/{image}/i';
    $ersetzung '<img src="image_aus_array" border="1">';
    echo 
    preg_replace($suchmuster$ersetzung$code); 
    Thx 4 help
    Signatur-Text ...

  • #2
    Dafür musst du nicht die RegExp-Maschine anwerfen. str_replace() ist dein Freund.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      nun soll per peg_replace ein image nach dem anderen ersetzt werden. 1. fund = image 1 2. fund = image 2 u.s.w.
      RegExp ist überflüssig. Dein Vorhaben kann str_replace() auch.

      Gruss

      tobi
      EDIT:

      War ich wohl zu lahm

      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


      • #4
        öhm str_replace? das ersetzt doch alles! "{image}" bleibt so!
        Signatur-Text ...

        Kommentar


        • #5
          allet klar ersetzen per array - omg übersehen
          Signatur-Text ...

          Kommentar


          • #6
            also:

            PHP-Code:
            for($i=0;$i<=count($img);$i++){
                
            $im explode("|",$img[$i]);
                
            $sim[] = $im[0];

            gibt mir die images in das array "sim"
            mit "str_replace("{image}", $sim, $code);" erhalte ich aber als anzeige nur "Array" und nicht das gewünschte Bild ...
            Signatur-Text ...

            Kommentar


            • #7
              PHP-Code:
              var_dump($sim); 
              ergibt was?
              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


              • #8
                PHP-Code:
                array(4) { 
                [
                0]=>  string(28"livestyle/enchantment01.jpg " 
                [1]=>  string(28"livestyle/enchantment01.jpg " 
                [2]=>  string(27"livestyle/enchantment02.jpg" 
                [3]=>  string(0"" 

                Signatur-Text ...

                Kommentar


                • #9
                  Quick and Dirty:
                  PHP-Code:
                  $str str_replace(array_fill(0,count($sim),'{image}'),$sim,$str); 
                  Klappt das denn so?

                  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


                  • #10
                    jein da habe ich überall dasselbe bild
                    Signatur-Text ...

                    Kommentar


                    • #11
                      jein da habe ich überall dasselbe bild
                      Na ja schonmal besser als überall Array
                      Aber eigentlich sollte das nicht sein, denn du hast ein Array search mit x Elementen und ein Array replace mit x Elementen. Also sollte doch für jeden Wert in search das entsprechende Element aus replace genommen werden
                      Aber vielleicht liegts auch daran, dass str_replace() alle Vorkommen ersetzt. Also vermute ich mal, dass du jeweils in allen Bildern das erste Bild hast.
                      Da du immer den gleichen search hast wird die Ersetzung wohl nur einmal gemacht und danach gibt es kein {image} mehr.
                      Also brauchst du wohl oder übel doch einen RegExp... Oder du bastelst dir etwas mit einer Schleife, das jeweils nur das erste Vorkommen ersetzt und dann den nächsten Schleifendurchlauf startet...
                      Oder du verpasst den {image} noch eine Nummer um sie eindeutig zu machen

                      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


                      • #12
                        kk habs so gelöst - ich zähle die vorkommen des "{image}" erstelle ein array daraus und habe so ein array das zum ersetzen dient. ka warum deins nicht ging - das hier geht:
                        PHP-Code:
                        $mb substr_count($code'{image}');
                        for(
                        $a=1;$a<=$mb;$a++){$ce[]="{image}";}
                        echo 
                        str_replace($ce,$sim,$code); 
                        trotzdem danke
                        Signatur-Text ...

                        Kommentar


                        • #13
                          ne verdammt geht auch net - nur von artikel zu artikel - pro artikel kommen dieselben bilder - iss ja auch klar - der ersetzt ja auch alle {image} ... mal sehen wie sich das lösen lässt - das wird ne lange nacht
                          Signatur-Text ...

                          Kommentar


                          • #14
                            Original geschrieben von jahlives
                            Oder du verpasst den {image} noch eine Nummer um sie eindeutig zu machen
                            geht ja nicht - das sind 4600 artikel und {image} in jedem ne id geben - da sitzt ich in 10 jahren noch drann
                            Signatur-Text ...

                            Kommentar


                            • #15
                              kk kann beruhigt sein - dauerte doch net so lange
                              PHP-Code:
                              $mb substr_count($code'{image}');
                              $suchmuster '/{image}/';
                              for(
                              $a=0;$a<=$mb;$a++){
                              $code preg_replace($suchmuster$sim[$a], $code,1);
                              }
                              echo 
                              $code
                              und tada - es ging ...
                              Signatur-Text ...

                              Kommentar

                              Lädt...
                              X