[Blind][RegEx] -> unfähig :)

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

  • [Blind][RegEx] -> unfähig :)

    Der Titel sagt ja quasi schon alles ... aber ich hab da eine Schleife. In eben dieser wird folgedes gemacht:
    PHP-Code:
    $return preg_replace("|".$block[0][$i]."|s"$thisBlock$return); 
    Beim ersten Aufruf funktioniert das ... beim zweiten nicht mehr. Warum?

    fügt man echo $block[0][$i]."\n".$thisBlock; in der Schleife ein, kommt folgendes:

    Aufruf 1

    Code:
    pattern: <!-- BLOCK 'Kartei' -->
    			<td class="{buttonActive}" nowrap>
    			&nbsp;<a href="{datei}" class="aNav" id="thisFile">{karteiname}</a>&nbsp;
    			</td>
    			<!-- // BLOCK -->
    
    Replace: 
    
    			<td class="clickNav" nowrap>
    			&nbsp;<a href="account/index" class="aNav" id="thisFile">T-Rex &Uuml;bersicht</a>&nbsp;
    			</td>
    Zweiter Aufruf:
    Code:
    pattern: <!-- BLOCK 'design' -->
    		  <tr>
    		   <td class="mainPunkt" onMouseOver="punktOver(this)" onMouseOut="punktOut(this)">
    		    {link}{test}
    		   </td>
    		  </tr>
    		  <!-- // BLOCK -->
    
    Replace: 
    		  <tr>
    		   <td class="mainPunkt" onMouseOver="punktOver(this)" onMouseOut="punktOut(this)">
    		    vergisseswas geht
    		   </td>
    		  </tr>
    Beim ersten mal ist alles schön, beim Zweiten passiert gar nix ...
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

  • #2
    hm.. würd's da nich auch n einfaches str_replace tun?

    Kommentar


    • #3
      Original geschrieben von oppi
      hm.. würd's da nich auch n einfaches str_replace tun?
      tja, das dachte ich mir auch schon. Nur leider funktioniert das genauso wenig
      h.a.n.d.
      Schmalle

      http://impressed.by
      http://blog.schmalenberger.it



      Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
      ... nur ohne :-)

      Kommentar


      • #4
        evt stimmen einfach die Blöcke nicht 100%?
        leerzeichen etc.
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Original geschrieben von MelloPie
          evt stimmen einfach die Blöcke nicht 100%?
          leerzeichen etc.
          des kann nicht sein. er soll ja nur das eine dem anderen ersetzten
          h.a.n.d.
          Schmalle

          http://impressed.by
          http://blog.schmalenberger.it



          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
          ... nur ohne :-)

          Kommentar


          • #6
            Prüf doch einfach mal nach, ob dein "pattern" überhaupt in $return vorkommt (Mit strstr, preg_match oder deinen Augen).
            hopka.net!

            Kommentar


            • #7
              probier mal
              Code:
              <!-- BLOCK 'Kartei' -->.*<!-- // BLOCK -->
              bzw.
              Code:
              <!-- BLOCK 'design'-->.*<!-- // BLOCK -->
              als pattern.
              Dann muss alerdings noch ein U als modifier dazu.
              (ungetestet)

              Kommentar


              • #8
                nee, da muss ich ja alles umbauen *heul* hier mal ein nisschen mehr code:
                PHP-Code:
                   ### Var-Blöcke finden
                   
                   
                preg_match_all("!(<\!-- BLOCK ')(.*?)(' -->)(.*?)(<\!-- // BLOCK -->)!s"$return$block);
                   
                   for(
                $i=0$i<count($block[1]); $i++) {
                   
                    
                $thisBlock "";
                    
                    for(
                $j=0$j<count($GLOBALS[$block[2][$i]]); $j++) { 
                    
                     
                $thisBlock .= preg_replace("!({)(.*?)(})!e"'$GLOBALS[$block[2][$i]][$j]'."['$2']"$block[4][$i]);
                    
                    } 
                // <-- for Schleife Elemente des AKTUELLEN Blocks
                    
                    
                $return preg_replace("|".$block[0][$i]."|s"$thisBlock$return); echo $block[0][$i]."\n".$thisBlock;
                   
                   } 
                // <-- for schleife gefundene Blöcke 
                So ist es vielleicht etwas verständlicher, was das ganze bezwecken soll
                h.a.n.d.
                Schmalle

                http://impressed.by
                http://blog.schmalenberger.it



                Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                ... nur ohne :-)

                Kommentar


                • #9
                  Original geschrieben von Hopka
                  Prüf doch einfach mal nach, ob dein "pattern" überhaupt in $return vorkommt
                  nö, das macht das script vorher schon selber. Wie man am aktuellen Code erkenn kann
                  h.a.n.d.
                  Schmalle

                  http://impressed.by
                  http://blog.schmalenberger.it



                  Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                  ... nur ohne :-)

                  Kommentar


                  • #10
                    Re: [Blind][RegEx] -&gt; unfähig

                    Original geschrieben von schmalle
                    Der Titel sagt ja quasi schon alles ...
                    OffTopic:
                    ja ... aber warum schreibst du "unfähig" noch dazu?
                    das können wir doch auch schon aus dem usernamen schliessen ...
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Re: Re: [Blind][RegEx] -&gt; unfähig

                      Original geschrieben von wahsaga
                      OffTopic:
                      ja ... aber warum schreibst du "unfähig" noch dazu?
                      das können wir doch auch schon aus dem usernamen schliessen ...
                      Du kleiner Hosensche*** Du
                      Du scheinst ja nicht fähiger zu sein ... Oder wo ist die Lösung?
                      h.a.n.d.
                      Schmalle

                      http://impressed.by
                      http://blog.schmalenberger.it



                      Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                      ... nur ohne :-)

                      Kommentar


                      • #12
                        also ich hab mal folgendes ausprobiert:
                        PHP-Code:
                        ### Var-Blöcke finden
                           
                        $return="<!-- BLOCK 'Kartei' -->
                                  <td class=\"{buttonActive}\" nowrap>
                                     <a href=\"{datei}\" class=\"aNav\" id=\"thisFile\">{karteiname}</a> 
                                    </td>

                                  <!-- // BLOCK -->
                           <!-- BLOCK 'design' -->
                                  <tr>
                                   <td class='mainPunkt' onMouseOver='punktOver(this)' onMouseOut='punktOut(this)'>
                                    {link}{test}
                                   </td>
                                  </tr>
                                  <!-- // BLOCK -->"
                        ;
                           
                        preg_match_all("|(<!-- BLOCK ')(.*?)(' -->)(.*?)(<!-- // BLOCK -->)|s"$return$block);
                           for(
                        $i=0$i<count($block[1]); $i++) {
                           
                            
                        $thisBlock "test".$block[2][$i];
                            
                           
                        /*
                           Der Teil definiert ja nur durch was ersetzt wird
                           for($j=0; $j<count($GLOBALS[$block[2][$i]]); $j++) { 
                            
                             $thisBlock .= preg_replace("!({)(.*?)(})!e", '$GLOBALS[$block[2][$i]][$j]'."['$2']", $block[4][$i]);
                            
                            } // <-- for Schleife Elemente des AKTUELLEN Blocks
                            */
                            
                        $return str_replace($block[0][$i], $thisBlock$return); 
                           } 
                        // <-- for schleife gefundene Blöcke
                           
                        echo $return;
                        ?> 
                        Des funktioniert einwandfrei. Oder hab ich was falsch verstanden?

                        Kommentar


                        • #13
                          Original geschrieben von oppi
                          Oder hab ich was falsch verstanden?
                          Ja
                          h.a.n.d.
                          Schmalle

                          http://impressed.by
                          http://blog.schmalenberger.it



                          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                          ... nur ohne :-)

                          Kommentar


                          • #14
                            Ich bin sowas von bescheu****

                            Problem gelöst.

                            alt:
                            PHP-Code:
                            $return preg_replace("|".$block[0][$i]."|s"$thisBlock$return); echo $block[0][$i]."\n".$thisBlock
                            neu:
                            PHP-Code:
                            $bloeckeAlt[] = $block[0][$i];
                                
                            $bloeckeNeu[] = $thisBlock
                            // + nach der Schleife: 
                            $return str_replace($bloeckeAlt$bloeckeNeu$return); 
                            Das ist ja einfach ....
                            Zuletzt geändert von schmalle; 05.05.2004, 09:03.
                            h.a.n.d.
                            Schmalle

                            http://impressed.by
                            http://blog.schmalenberger.it



                            Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                            ... nur ohne :-)

                            Kommentar


                            • #15
                              Original geschrieben von schmalle
                              Ich bin sowas von bescheu****
                              das wissen wir schon längst, musst ja nicht nochmals sagen

                              Kommentar

                              Lädt...
                              X