Alexander: Zeichenkette auf bestimmte Begriffe hin prüfen

Hallo,

ich weiss, das man mit Javascript z. B. eine Emailadresse auf nicht erlaubte Zeichen prüfen kann.

Kann man das in PHP auch? Ich habe eine Variable, die ich darauf prüfen möchte, ob direkt am Anfang eine bestimmte Kombination aus 4 Buchstaben vorkommt. Wie geht das?

Viele Grüße
Alexander

  1. Hallo Alexander!

    Da würd ich mal in der PHP-Doku schaun. (www.php.net)

    Es gibt grundsätzlich verschiedene Möglichkeiten:

    • erstens per RegExp. Das ist das Beste, brauch aber auch am Meisten Einarbeitungszeit. (Beispiele sind u.a. auch in SelfHTML vorhanden)
        die Funktion für php heisst dann
        ereg zum Suchen, bzw ereg_replace zum Tauschen

    • zweitens simpel per Stringsuche und Stringkopieren.
        Die Funktionen heissen:
        strpos - Sucht nach Vorkommen in einem String
        substr - Gibt Teile eines Strings aus

    Hope that helps.

    Bis denne,
    Dennis

    1. Hallo zusammen,

      vielen Dank! Das hat super gepasst - ich hatte zwar schon auf php.net gesucht, aber einfach nicht nach dem richtigen Begriff ;-)

      Meine Lösung (Beispiel) sieht jetzt so aus:

      $notallowed = substr ($thestring,0, 4); // gibt die ersten 4 Zeichen zurueck

      if (preg_match ("/EINS/i", $notallowed)) {
      print ('Fehler');
      }
      elseif (preg_match ("/ZWEI/i", $notallowed)) {
      print ('Fehler');
      }
      else{
      print ('kein Fehler');
      }

      Noch Ideen? Kann man das noch "besser" machen?

      Gruß und danke
      Alexander

      1. Hi!

        if (preg_match ("/EINS/i", $notallowed)) {
        print ('Fehler');
        }
        elseif (preg_match ("/ZWEI/i", $notallowed)) {
        print ('Fehler');
        }
        else{
        print ('kein Fehler');
        }

        Noch Ideen? Kann man das noch "besser" machen?

        Du kannst durch ^ noch dafür sorgen, dass EINS bzw. ZWEI am Anfang des Strings vorkommen müssen, damit der Reguläre Ausdruck TRUE zurückgibt, also

        preg_match ("/^EINS/i", $notallowed)

        Grüße
        Andreas

        1. Hey.

          Also, ich kann das
          $notallowed = substr ($thestring,0, 4); // gibt die ersten 4 Zeichen zurueck

          damit ersetzen, indem ich ein ^ an den Anfang des Ausschlußbegriffes setze? Richtig verstanden?

          Danke und Gruß
          Alexander

          1. Hi!

            Ja, theoretisch schon, kannst Du ja einfach testen ;-)

            http://www.php.net/manual/de/pcre.pattern.syntax.php
            (leider nur in englisch)

            Grüße
            Andreas

  2. Hallo Alexander,

    klar ist das mit PHP auch möglich. Die Funktionen ereg bzw. eregi in Verbindung mit regulären Ausdrücken machen fast alles möglich.

    http://www.php3.de/manual/de/function.ereg.php
    http://www.php3.de/manual/de/function.eregi.php

    Grüße aus Würzburg
    Julian

  3. Hi

    Ich bin zwar kein Held in Regulären Ausdrücken, aber vielleicht funktionierrt es ja:

    if(eregi ("^vier*",$string)) {

    // wenn der String mit den Buchstaben v i e r anfängt ist alls OK
    }

    Ich hoffe das stimmt so :-)

    Grüße
    Andreas

    1. Wo ich gearde nochmal drüber gucke:

      if(eregi ("^vier*",$string)) {

      ^
      Der Stern bedeutet "das  was davor steht 0 - unendlich mal wiedeholen", also in diesem Fall Schwachsinn!

      eregi ("^vier",$string)

      sollte da reichen!

      Grüße
      Andreas