Reguläre Ausdrücke & Variablen^

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

  • Reguläre Ausdrücke & Variablen^

    Hi leute,

    ich würde gerne die variablen aus einem text ziehn..

    habe alse einen code der so ausschaut:

    Code:
    $string = "das ist ein string mit einer $variable";
    
    preg_match("/(\$\w+)/",$string,$match);
    
    echo $match;

    der sollte mir doch jetzt eigentlich die $varaible aussprucken, hätte ich keinen fehler in dem ollen reg. ausdruck.. drück mich da jetzt schon ganzen morgen dran rum, komm aber keinen schritt weiter... über hilfestellung eurerseits würd ich mich tierisch fruen!

    -chris

  • #2
    ich würde auf jeden Fall preg_match_all() benutzen, falls mehrere Variablen vorkommen.

    ansonsten probier's mal so:

    preg_match("/(\$[\w]+)/",$string,$match);

    oder

    preg_match("/(\$[a-zA-Z_]+)/",$string,$match);

    Kommentar


    • #3
      hmm, sorry, ich glaube, mein erstes Beispiel ist Quatsch. Das würde ja alle nachfolgende Worte nach dem $ als Ergebnis liefern. Oder? Probier's aus...

      Kommentar


      • #4
        Code:
        $string = 'Dies ist ein string $ $n mit $variablen';
        
        preg_match_all("/(\$[a-zA-Z_]+)/",$string,$match); 
        
        echo $string;
        echo $match[0];
        echo $match[1];
        danke für deine hilfe.. hat leider noch nicht geklappt :/
        so schaut's aus, trotzdem bleibt $match leer... das treibt mich noch in den wahnsinn

        Kommentar


        • #5
          so kannst du das Ergebnis von preg_match_all aber auch nicht ausgeben. hier nochmals der korrekte Code:
          PHP-Code:
          $string 'Dies ist ein string $ $n mit $variablen';

          preg_match_all("/(\$[a-zA-Z_]+)/",$string,$match,PREG_PATTERN_ORDER); 

          echo 
          $string."<br>";

          for (
          $i=0;$i<count($match[0]);$i++) {
            echo 
          "Treffer ".$i.": ".$match[0][$i]." => ".$match[1][$i];
            } 

          Kommentar


          • #6
            selbst mit dieem code bleibt die seite leer..


            gibts was anderes, was man beachten muss? an der config vom server kanns ja wohl nicht liegen, oder!?

            Kommentar


            • #7
              hi leute,


              hab gestern abend nochmal ein wenig dran gebastelt, aber ich bekomm einfach garnix raus.. der müsste doch wenisgtens auf eins der $-zeichen reagieren...

              kann es vielleicht sein, dass man ohne zu tricksen die variablen garnicht aus nem string auslesen kann?! oder kennt jemand einen anderen weg, um die namen der variablen, die in einer php-datei vorkommen auszulesen!?

              danke
              -chris

              Kommentar


              • #8
                PHP-Code:
                preg_match_all('%\$(.*)([^a-z0-9]|$)%siU',$string,$array);
                print_r($array[0]); 
                das vorher von mir war geringfügig bullshit (parse_str)
                Zuletzt geändert von mrhappiness; 15.08.2003, 08:28.
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  super-dickes-danke!

                  habs eben ausgeführt, und das ergebnis schaut schonmal sehr gut aus.. danke für die hilfe mrhappiness und all den andern =)

                  Kommentar


                  • #10
                    hi leute, muss nochmal nachfragen

                    momentan habe ich diesen ausdruck, um die variablen zu finden.
                    Code:
                    preg_match_all('%(\$[a-z0-9_]*)([^a-z0-9_]|$)%siU',$xstring,$match);
                    leider gibt er mir dan auch ergebnisse wie:
                    Code:
                    $test+
                    oder 
                    $+
                    als varaiblen unbrauchbar und bei $x+$y würd dies das ganze skript zerhauen. ich versteh einfach nicht, warum das "+" überhaupt akzeptiert wird. außer buchstaben,zahlen und _ dürfte er doch garnix schlucken.....


                    würd mich über eine erneute hilfestellung freun =)

                    -chris

                    Kommentar


                    • #11
                      PHP-Code:
                      $string='Dies ist $9 ein $test/ string $ $n mit $variablen';
                      preg_match_all('%(\$[a-z]+[a-z0-9]*)([^a-z0-9]|$)%siU',$string,$array);
                      echo 
                      '<pre>';
                      print_r($array);
                      echo 
                      '</pre>'
                      $array[1] sollte das sein was du suchst
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar

                      Lädt...
                      X