(I searched, and found lots of questions about converting relative to absolute urls, but nothing for absolute to relative.)
I'd like to take input from a form field and end up with a relative url. Ideally, this would be able to handle any of the following inputs and end up with /page-slug
.
http://example.com/page-slug
http://www.example.com/page-slug
https://example.com/page-slug
https://www.example.com/page-slug
example.com/page-slug
/page-slug
- And maybe more I'm not thinking of...?
Edit: I'd also like this to work for something where the relative url is e.g. /page/post
(i.e. something with more than one slash).
Try this regexp.
And replace it with the empty string.
Take a look at
parse_url
if you are always working with URLs. Specifically:FYI, I tested it against all your input, and it worked on all except:
example.com/page-slug
I think you want the part of the URL after the hostname, you can use
parse_url
:Note that this gets the whole of the URL after the hostname, so
http://example.com/page/slug
will give/page/slug
.I would just do this a little hacky way if you know your application. I would use a regex to search for