Ich habe versucht, meine eigene Route-Klasse - und ich habe heißes Problem mit dem Parsen von gültigen URLs.Parsing URL mit preg_match - regexp
Dies ist ein Beispiel url: http://localhost/app/module/command/i15
Und ich brauche jedes Element nach slash/ein zusätzliches Element in Array zu sein mit preg_match in PHP zu erstellen.
Also - für die Suche von Zahlen habe ich: ([0-9] +) Suche Strings, die Buchstaben enthält, Zeichen wie - oder _ ich habe ([^.] +) (Hier ist das Problem
) wie folgtganze regexp Aussehen:
(app)\/(module)\/([^.]+)\/i([0-9]+)
i ein Array von 5 Elementen wollen, so ähnlich:
0 => app, 1=> module, 2 => command, 3 => i15
Es wird mehr Schönheit, wenn preg_match zurückkehren wird nur so etwas wie t Hut:
0 => app, 1=> module, 2 => command, 3 => 15
(ohne I als param Identifier)
Kann mir jemand schnell helfen mir? Ich stecke 2 Tage darin und finde keine richtige Lösung.
EDIT: Ich habe einige regexp wie vorgegeben bekam:
/app/contacts/list => (app)\/(contacts)\/([^.]+)
/app/contacts/edit/i15 => (app)\/(contacts)\/([^.]+)\/i([\d]+)
/app/contacts/view/i15-c2 => (app)\/(contacts)\/([^.]+)\/i([\d]+)-c([\d]+)
Und für alle die ich verschiedene regexp bereiten wie oben. Problem Sterne, wenn ich brauche etwas zwischen zu analysieren:
/app/contacts/preview/random-name/i15-c2
oder
/app/contacts/preview/random-name-i15-c2
([. ^] +) Fängt auch \ (Schrägstrich) - und in obigem erstem Beispiel dieser Schrägstrich brach ganzen regexp: - (
EDIT ZWEITEN MAL :-)
habe ich einige vordefinierte regexps für einige Pfade bekam. Werfen wir einen Blick haben:
$regexp = [
[0 => '(app)\/([^/]+)'],
[1 => '(app)\/([^/]+)\/i([0-9]+)']
];
Next i aktuelle URL überprüfen und das beste Ergebnis passen - ich weiß, was ich will, aber php nicht weiß, was Benutzer auswählen, so:
wenn ich URL mit Pfad eingeben :
app/Benutzername/i15
System, der $ regexp zeigt mir [0] ist bestes Ergebnis - was es nicht wahr ist, weil $ regexp [1] ist die besten.
Ich hoffe, das erklärt mein Problem.
Mögliche Duplikate von [Wie parsen und verarbeiten Sie HTML/XML in PHP?] (Https://stackoverflow.com/questions/3577641/how-do-you-parse-and-process-html-xml-in -php) – Nic3500
yeah, mach keine eigene Route Klasse. Benutze einfach nikic/fastroute. – Gordon
@Gordon Ich mache meine App nicht wie andere MVC (Route> Controller) - also könnte das nicht hilfreich sein. Meine Route wird in eine Datei mit speziellen Parametern umgeleitet. EDIT: finden Sie die halbe Lösung [^ /] + Vielleicht habe ich versucht, Sie alle mein Problem In Beispiel zu zeigen. –