Regular Expression ved sammenligning af to URL'er

Tags:    php url

Hej
Jeg sidder med et projekt, hvor jeg skal gøre noget såfremt den aktive URL er indeholdt i et array.
Hertil ved jeg at jeg skal bruge en regular expression til at ignorere alt efter et bestemt tegn.
Jeg har i mit array f.eks. følgende:
Fold kodeboks ind/udKode 


De to adresser med /* skulle gerne fortolkes således at hvis jeg står på http://mydomain.com/user/1/sfd/343/sdfglæsm/kslfds/sdfds, så skal den stadig gøre det samme som hvis jeg står på http://mydomain.com/user/julemandskane, men http://mydomain.com/user skal ikke medtages.

Jeg har ud fra disse kriterier bygget denne regex, som skulle kunne klare opgaven:
Fold kodeboks ind/udKode 


Mit problem er så hvordan jeg i PHP får den til at sammenligne en streng mod min regex og elementerne i et array.



3 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
regex: /\/user\/(.+)$

Du kan omdanne din stjerne til (.+)$

Så din regex f.eks. bliver pages\/news\/something\/more\/(.+)$

For at sammenligner i et array - da kun en URL altid er aktiv kan du gennemløbe et array.

Fold kodeboks ind/udPHP kode 




Det var lidt samme udgangspunkt jeg selv havde, men da mit array består af URL'er som er indtastet af f.eks. en bruger, som ikke aner noget som helst omkring hvordan min bygger en regex, så skal jeg kunne sammenligne direkte med de URL'er jeg har givet i eksemplet og det er ikke nødvendigvis disse. Det kan også være helt andre URL'er der bliver tastet.

Hele ideen er at jeg skal få et match ud af en URL, så længe den del der kommer før * er ens med min URL.

Mit første bud var faktisk at tælle antallet af tegn frem til * på relevante elementer i mit array og så sammenligne det samme antal tegn i min URL med elementet i mit array og så ud fra resultatet returnere true eller false. Dog vil denne løsning kræve et par loops, hvilket var derfor at jeg kiggede på regex.

En helt simpel forklaring kunne være at jeg ønsker at sammenligne to tekststrenge, men de er kun ens, såfremt det giver samme resultat efter at have kørt dem begge igennem samme regex.



Indlæg senest redigeret d. 18.11.2015 20:53 af Bruger #17072
Ud fra følgende search url:
$url = my-blog/:category/items/current/2015-04-12


Fold kodeboks ind/udPHP kode 




t