Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] richtiges Pattern für preg_match

Einklappen

Neue Werbung 2019

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

  • [Erledigt] richtiges Pattern für preg_match

    Hallo zusammen,

    ich möchte mir gerade ein pattern für preg_match basteln. Es geht darum zu überprüfen ob $_SERVER['REQUEST_URI'] die richtige Formatierung hat. Dazu habe ich zuerst dieses pattern verwendet.

    PHP-Code:
    preg_match("/^[A-Za-z?=\&%-\/]+$/"$uri
    Die Variable $uri enthält $_SERVER['REQUEST_URI'].
    Zuerst hat es auch das gemacht was ich wollte, aber leider gibt es da ein Problem. URLs wie z.B.

    /class/method=

    sind mit diesem pattern erlaubt. Aber ich hätte gerne folgende festgelegte Formatierung.

    /class/method/param1

    oder

    /class/method/param1/param2

    oder

    /class/method/param1/?var=test

    im ersten Teil kommt die Klasse (nur Buchstaben erlaubt).
    der 2.Teil soll die Methode der Klasse sein (ebenfalls nur Buchstaben erlaubt).
    ab dem 3.Teil sollen Parameter übergeben werden können (Buchstaben und Zahlen).
    Und natürlich soll auch $_GET erlaubt werden.

    Leider hab ich nun das Problem das es ja mal vorkommen kann das in der URL nur /, /class oder /class/method stehen kann. Dazu will ich später in der Klasse dann Default Actions aufrufen.

    Das ganze dient für eine selbst geschriebene Router Klasse. Für mich scheint der pattern dann aber leider viel zu kompliziert zu werden. Habt ihr vielleicht eine Idee wie der pattern dann auszusehen hat oder eine andere Alternative?


  • #2
    Warum nicht einfach parse_url() und parse_str() (die dann funktionieren oder auch nicht)?
    Standards - Best Practices - AwesomePHP - Guideline für WebApps

    Kommentar


    • #3
      parse_url() ist eine tolle Sache kannte ich vorher noch nicht. Ich bin auch gerade noch auf eine andere Idee gekommen. Ich werde die URL erstmal zerlegen mit explode und kann dann mittels preg_match die einzelnen Teile überprüfen, wenn denn welche vorhanden sind.
      Ich werde aber definitiv parse_url() verwenden. Hab aber noch eine Frage zu parse_url(). Unzwar wenn mehrere GET Variablen übergeben werden, wird der [query] Part von parse_url() dann auch zu einem Array oder muss ich das Ergebnis nochmal extra zerflücken?

      Kommentar


      • #4
        Warum probierst DU es nicht aus?
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Wollte nur kurz die Frage noch hinterher werfen, weil ich nichts in der Doku gefunden habe. Thema hat sich aber erledigt.

          Danke

          Kommentar

          Lädt...
          X