[REGEX] Preg_replace Hilfe

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [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'

    Comment


    • #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?


      Last edited by djdirek; 30-08-2005, 21:16.

      Comment


      • #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.

        Comment


        • #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
          Last edited by djdirek; 30-08-2005, 21:30.

          Comment


          • #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...

            Comment


            • #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?
              Last edited by djdirek; 30-08-2005, 21:50.

              Comment


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

                Comment


                • #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

                  Comment


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

                    Comment


                    • #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;
                      ?>
                      Last edited by djdirek; 30-08-2005, 22:05.

                      Comment


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

                        Comment


                        • #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;
                          ?>

                          Comment

                          Working...
                          X