Reputation: 13
I need the following but I don't know how to do this .. with Regular Expression.
First problem
From $uri = '/page/subpage/?vars=bla' I want to extract only '/page/subpage/';
Second problem
The $uri = '/page/subpage/?vars=bla' I want to convert it to a friendly version '/page/subpage/vars-bla/'; Right now I can make it '/page-subpage-vars-bla/' but I want to keep the slashes.
Thanks is advance!
Upvotes: 1
Views: 2476
Reputation: 49919
First problem solution:
preg_match("/(.*)\\/([^\\/]+)/", '/page/subpage/?vars=bla', $split);
echo $split[1] . "/";
Output:
/page/subpage/
Second problem:
preg_match("/(.*)\\/([^\\/]+)/", '/page/subpage/?#$Q@DFSDFvars=bla', $split);
echo $split[1] . "/" . str_replace("=", "-", $split[2]) . "/";
Output:
/page/subpage/?#$Q@DFSDFvars-bla/
Upvotes: 2
Reputation: 5097
Why not use parse_url()?
$uri = '/page/subpage/?vars=bla';
parse_url($uri);
Results...
array
'path' => string '/page/subpage/' (length=14)
'query' => string 'vars=bla' (length=8)
Upvotes: 0