URL Encode PHP

PHP contains two inbuilt functions called urlencode() and rawurlencode() to encode a string so that it can be placed inside the query part or the path segment of a URL.

The urlencode() function

# Syntax
urlencode (string $str) : string

The urlencode() function converts a string to URL encoded format by replacing all non-alphanumeric characters except - and _ with a percent (%) sign followed by two hex digits.

It converts the space character to plus sign (+) according to application/x-www-form-urlencoded MIME format. It follows RFC 1738.

Example

<?php
echo urlencode("Hellö Wörld") . "\n";
?>
# Output
Hell%C3%B6+W%C3%B6rld

The rawurlencode() function

The rawurlencode() function encodes URLs according to the latest RFC 3986. Unlike urlencode() function, it encodes space character to %20 instead of plus sign (+)

# Syntax
rawurlencode (string $str) : string

As per RFC 3986, It returns a string in which all non-alphanumeric characters except -, _, ., ~ are replaced with a percent (%) sign followed by two hex digits.

If you’re confused which function you should use for encoding URLs, just go ahead with rawurlencode().

Example

<?php
echo rawurlencode("Hellö Wörld") . "\n";
?>
# Output
Hell%C3%B6%20W%C3%B6rld

Also Read: URL Decode PHP Example

References