PHP - URL urlencode() Function
The PHP URL urlencode() function is used to encode a string to be used in a URL. It is useful when an encoded string is used in the URL's query part to send variables to the next page.
Syntax
Below is the syntax of the PHP URL urlencode() function −
string urlencode( string $str )
Parameters
This function accepts $str parameter which is the string to be encoded.
Return Value
The urlencode() function returns a string in which all non-alphanumeric characters except "-_." are replaced with a percent (%) sign followed by two hex digits and spaces encoded as plus (+) symbols. It is encoded in the same way as uploaded data from a WWW form is encoded, which is the same as the media type application/x-www-form-urlencoded. It differs from RFC 3986 encoding for historical reasons, with spaces encoded as plus (+) signs.
PHP Version
Introduced in core PHP 4, the urlencode() function continues to function easily in PHP 5, PHP 7, and PHP 8.
Example 1
Here we will show you the basic example of the PHP URL urlencode() function to encode a user input string which contains special characters.
<?php // Mention user input here $userInput = 'ExampleInput#&=+'; echo "UserInput: $userInput\n"; echo '<a href="mycgi?foo=', urlencode($userInput), '">'; ?>
Output
The above code will result something like this −
UserInput: ExampleInput#&=+ <a href="mycgi?foo=ExampleInput%23%26%3D%2B">
Example 2
Now we will try to use the urlencode() function and encode multiple urls at the same time.
<?php
// encode the given urls
echo urlencode("https://www.tutorialspoint.com") . "\n";
echo urlencode("https://www.tutorialspoint.com/php/index.htm") . "\n";
echo urlencode("https://www.tutorialspoint.com/html/index.htm") . "\n";
echo urlencode("https://www.tutorialspoint.com/tutorialslibrary.htm") . "\n";
?>
Output
After running the above program, it generates the following output −
https%3A%2F%2Fwww.tutorialspoint.com https%3A%2F%2Fwww.tutorialspoint.com%2Fphp%2Findex.htm https%3A%2F%2Fwww.tutorialspoint.com%2Fhtml%2Findex.htm https%3A%2F%2Fwww.tutorialspoint.com%2Ftutorialslibrary.htm
Example 3
This example shows how to encode multiple user input strings for safe inclusion in a URL query string. The encoded strings are then contained in the href attribute of an anchor (<a>) tag.
<?php // Mention user inputs here $input1 = 'Special@Input$%*'; $input2 = "Not the same content as $input1"; echo "input1: $input1\n"; echo "input2: $input2\n"; $query_string = 'input1=' . urlencode($input1) . '&input2=' . urlencode($input2); echo '<a href="mycgi?' . htmlentities($query_string) . '">'; ?>
Output
This will create the below output −
input1: Special@Input$%* input2: Not the same content as Special@Input$%* <a href="mycgi?input1=Special%40Input%24%25%2A&input2=Not+the+same+content+as+Special%40Input%24%25%2A">
Example 4
This example will use the urlencode() function to encode a string which contains special characters like @, #, and &.
<?php // Mention the email address here $str = "email@tutorialspoint.com&subject=Hello#World!"; $encodedStr = urlencode($str); echo $encodedStr; ?>
Output
When the above program is executed, it will produce the below output −
email%40tutorialspoint.com%26subject%3DHello%23World%21