I need to replace url invalid characters with something url valid then convert it back again.
This is for a search page with a url like http://my.site/search/this-is-a-search, the search form POSTS then the user redirected to the new url.
Php has functions urlencode and urldecode however these do not work at all, and leave invalid characters in my url.
Surely I don't need to reinvent the wheel here.
For stuff like
http://my.site/search/this-is-a-search
(i.e., outside the query string), you should userawurlencode
andrawurldecode
. These are guaranteed to be URL-safe.However,
urlencode
will never generate an unsafe URL path either, since the only difference is how spaces are encoded andurlencode
encodes spaces to+
, which is permitted in the URL path.From RFC 1738:
What about
rawurlencode()
.http://www.php.net/manual/en/function.rawurlencode.php