Frage

Hallo zusammen ich brauche ein wenig Hilfe.

Hier ist der bestehende preg_match Code:

preg_match("/(\/)([0-9]+)(\/?)$/", $_SERVER["REQUEST_URI"], $m);

das macht einen guten Job die post_id in der folgenden URI-Zeichenfolge des Erfassens:

http://www.example.com/health-and-fitness-tips/999/

ich glaube, das sollte genug Hintergrund sein.

Ich ändere die 999, die post_id, how-do-I-lose-10kg-in-12-weeks', thepost_title` und Notwendigkeit, die pre_match regex zu ändern, um die neue Zeichenfolge zu erkennen.

Mein erster Gedanke war nur noch hinzufügen [a-z] - bis zum Ende der Regex der folgenden regex machen:

"/(\/)([0-9][a-z]/-+)(\/?)$/"

Es ist vielleicht diese einfach? Wenn nicht, was falsch ist mit dem oben?

War es hilfreich?

Lösung

Nicht ganz: ([0-9][a-z]/-+) ist „eine Zahl, gefolgt von einem Buchstaben, gefolgt von mindestens einem Bindestrich“

Sie wollen ([-0-9a-z]+).

Andere Tipps

Ich würde nur \w verwenden:

preg_match('!/([-\w]+)/?$!', $_SERVER['REQUEST_URI'], $m);

Zeichenklassen oder Zeichensätze :

  

\w steht für "Wortzeichen",   in der Regel [A-Za-z0-9_]. Beachten Sie die   Aufnahme des Unterstreichungs und   Ziffern.

\w für Wort steht, können Buchstaben sowohl Groß- und Kleinbuchstaben A bis Z und a bis z, die Zahl von 0 bis 9 oder _ sein. Es ist äquivalent zu [A-Za-z0-9_]. Sie können in dem Test Online-Tester hier.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top