regular expression url mit mehreren variablen

xamunrax

Erfahrenes Mitglied
Hallo,

ich weiss das Thema regex ist schon sehr oft in diesem Forum vertreten leider sind diese jedoch meistens so unterschiedlich das ich einfach kein passendes für meinen Fall finde und auch einfach nicht hinter die Lösung steige.

Folgender Fall, ich benutze ZendFramework, dort kann ich in einer INI-File die routen festlegen (also praktisch was er mit einer eintreffenden URL machen soll)

Meine routes.ini
Code:
routes.products.type = "Zend_Controller_Router_Route_Regex"
routes.products.route = "products/(.*)/(?:p-([0-9]{1,6}))$"
routes.products.defaults.module = "default"
routes.products.defaults.controller = "products"
routes.products.action = "index"
routes.products.map.productid = 2
routes.products.map.categories = 1

So ich möchte dies nun um ein paar Funktionen erweitern.
Und zwar soll er folgende URL zuweisen können.

localhost/products/category1/category1_1/category1_2/p-1111/t-12345?irgendwas=anderes


hier sollen nun
"category1/category1_1/category1_2" an die variable "routes.products.map.categories" bei diesen muss es egal sein ob er eine oder fünf kategorien übergibt diese sollen alle in die Variable categories (wie oben in meinem Beispiel),
"1111" an die variable productid,
"12345" an die variable templateid übergeben werden.

Sollte sich an der Url noch ein Anhang (weitere Parameter) befinden sollen diese wie gewohnt ebenfalls übertragen werden.
Weiter muss es natürlich auch möglich sein die url ohne die templateid zu übertragen also:

localhost/products/category1/category1_1/category1_2/p-1111?irgendwas=anderes

genauso wie am ende endweder ein Slash stehen darf oder nicht

localhost/products/category1/category1_1/category1_2/p-1111/t-12345?irgendwas=anderes
localhost/products/category1/category1_1/category1_2/p-1111/t-12345/?irgendwas=anderes



ich weiss dieser Post sollte sicher eher im ZendForum stehen aber ich denke es handelt sich hier um ein generelles RegEx "Problem" und bin hier bisher immer gut beraten worden.

In diesem Sinne, besten Dank im voraus!
Marco
 
Zuletzt bearbeitet:
Joa das ist der Grund warum ich nachgefragt hab... :)

Vielen Dank, das hätte ich unter Garantie nicht rausbekommen... :)
 
Zurück