[REGEX] Preg_replace Hilfe

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

  • [REGEX] Preg_replace Hilfe

    schaut euch mal bitte das an

    http://www.cix88.de/cix_php/demo/cix...20050830212117

    ich möchte value="B"
    mit
    value="A"
    ersetzen.

    Also B mit A

    Kann mir jemand helfen ich weiß nicht wie man die 2. Selection anwählbar macht

    Ich bekomme immer nur das komplette
    value="B" ersetzt.>
    Nicht
    B
    alleine...

  • #2
    PHP-Code:
    $pattern '#(value=["\\\'])(.*?)(["\\\'])#iU';

    $ersatz '$1AA$3'

    Kommentar


    • #3
      Wenn ich nun 'type' oder 'class' anstatt value in ihren Werten ersetzten möchte?

      PHP-Code:
      function FormReplace ($wert,$ersatz,$String)
      {
      $pattern '#('.$wert.'=["\'])(.*?)(["\'])#iU';

      echo 
      preg_replace($pattern$ersatz$string);

      return 
      $ersatz '$1$ersatz$3';
      }

      $formFormReplace("class","5.Klasse,$string"); 
      Wie gehe ich da vor?

      Diese Funktion würde so nicht funktionieren. Wie könnte man das Realisieren?


      Zuletzt geändert von djdirek; 30.08.2005, 22:16.

      Kommentar


      • #4
        natürlich nicht, du solltest erst mal die syntax deines codes in ordnung bringen.

        ansonsten scheinst du den unterschied zwischen
        PHP-Code:
        $foo 'bar';
        echo 
        'das ist $foo'
        und
        PHP-Code:
        $foo 'bar';
        echo 
        "das ist $foo"
        nicht zu kennen. informiere dich darüber.

        Kommentar


        • #5
          das ist die Hektik
          PHP-Code:
          function FormReplace ($wert,$ersatz,$string)
          {
          $pattern '#('.$wert.'=["])(.*?)(["])#iU';

          echo 
          preg_replace($pattern$ersatz$string);

          return 
          $ersatz '$1$ersatz$3';
          }

          $form=FormReplace("name","5.Klasse",$string); 

          würde mich sehr freuen wenn mir (Newbie) jemand dabei hilft. Ich befase mich schon länger mit diesen arrgen problem und komm einfach nicht zur Ruhe- das würde dann die ruhe bedeuten
          Zuletzt geändert von djdirek; 30.08.2005, 22:30.

          Kommentar


          • #6
            ok, dann mal schrittweise.

            1. die formatierung von dem ersatz-string gehört vor den aufruf von preg_replace, un nicht danach.

            2. die zuweisung ist, wie oben bereits erwähnt, falsch, aber ich habe das problem ja schon angesprochen.

            3. das echo ist auch falsch, die ausgabe interessiert keinen.

            4. return soll das zurückliefern, was preg_replace() zurückgibt.

            soweit...

            Kommentar


            • #7
              PHP-Code:
              function FormReplace ($wert,$ersatz,$string)
              {
              $pattern '#('.$wert.'=["])(.*?)(["])#iU';
               
              $ersatz '$1$ersatz$3'// oder $1'.$ersatz.'$3

              return preg_replace($pattern$ersatz$string);

              }

              $form=FormReplace("name","5.Klasse",$string); 
              Jetzt Ok?
              oder was meint man mit Zuweisung?
              Zuletzt geändert von djdirek; 30.08.2005, 22:50.

              Kommentar


              • #8
                Jetzt Ok?
                weiß ich nicht, aber willst du es nicht testen?

                Kommentar


                • #9
                  Nein, ich denke jetzt gehts erst richtig los

                  Das mir jemand das $pattern nennt womit ich --->
                  Wenn ich nun 'type' oder 'class' anstatt value in ihren Werten ersetzten möchte?
                  ...eine richtige function erstellen kann.

                  In diesen Array-Ersetzungs-Dimensions-Variablen vermag ich nur schlecht den Überblick zu behalten ,bzw. die Ersatzwerte

                  Kommentar


                  • #10
                    so eine funktion hast du doch gerade eben geschrieben.

                    Kommentar


                    • #11
                      Nein leider nicht siehe hatte nur value erkannt
                      hätte ich z.B. name benutzt wäre der ausgabe text verunstaltet gewesen.

                      aber ich habe hier noch eine andere (welcher fast klappt)
                      wenn ich nun
                      für $wert=name eingebe und $ersatz=5.Klasse
                      dann bekomme ich immerhin:
                      <input type="button" class="button" accesskey="b" name=.Klasseaddbbcode0 value="B">
                      für $wert=name eingebe und $ersatz=5.Klasse
                      <input type=.Klassebutton class="button" accesskey="b" name="addbbcode0" value="B">
                      also die fehlenden '"'stören
                      PHP-Code:
                      <?php

                      $string 
                      = <<<EOD
                      <input type="button" class="button" accesskey="b" name="addbbcode0" value="B">
                      EOD;
                      function 
                      FormReplace ($wert,$ersatz,$string) {
                         
                      $pattern '#('.$wert.')\s*=\s*(["\'])(.*?)(\2)#ims';

                         return 
                      preg_replace($pattern"$1=$2$ersatz$3"$string);
                      }

                      $form=FormReplace("type","5.Klasse",$string);
                      echo 
                      $form;
                      ?>
                      Zuletzt geändert von djdirek; 30.08.2005, 23:05.

                      Kommentar


                      • #12
                        vielleicht gibst du dir erstmal mühe, dich so auszudrücken, dass man dich versteht.

                        Kommentar


                        • #13
                          geschafft!!
                          Dank an Alle!
                          PHP-Code:
                          <?php

                          $string 
                          = <<<EOD
                          <input type="button" class=button accesskey="b" name="addbbcode0" value="B">
                          EOD;
                          function 
                          FormReplace ($wert,$ersatz,$string) {
                             
                          $pattern '#('.$wert.')\s*=\s*(["\'])?(.*?)(["\'])?[ ]?#ims';

                             return 
                          preg_replace($pattern"$1=$2$ersatz $2"$string);
                          }


                          $form=FormReplace("class","sachte",$string);
                          echo 
                          $form;
                          ?>

                          Kommentar

                          Lädt...
                          X