PHP - URL urldecode() Function
The PHP URL urldecode() function is used to decode URLs that have been encoded using the urlencode() function. This function can decode any %## encoding in a given string. Plus symbols ('+') have decoded to a space character.
Syntax
Below is the syntax of the PHP URL urldecode() function −
string urldecode( string $str )
Parameters
This function accepts $str parameter which is the url to be decoded.
Return Value
The urldecode() function returns the decoded string.
PHP Version
Introduced in core PHP 4, the urldecode() function works well with PHP 5, PHP 7, and PHP 8.
Example 1
First we will show you the basic example of the PHP URL urldecode() function to decode the given encoded string.
<?php // Mention encoded string here $str = "Hello%20World"; $decodedStr = urldecode($str); echo $decodedStr; ?>
Output
The above code will result something like this −
Hello World
Example 2
In the following example, we are using the urldecode() function to decode the given encoded email address.
<?php // Mention encoded email address here $str = "user%40tutorialspoint.com"; $decodedEmail = urldecode($str); echo $decodedEmail; ?>
Output
When the above program is executed, it will produce the below output −
user@tutorialspoint.com
Example 3
This example shows how to decode a URL-encoded string using urldecode() that contains special characters like slashes, ampersands, and spaces.
<?php // Mention URL path here $str = "https%3A%2F%2Ftutorialspoint.com%2Fsearch%3Fq%3Dhello%26name%3Damit"; $decodedURL = urldecode($str); echo $decodedURL; ?>
Output
This will create the below output −
https://tutorialspoint.com/search?q=hello&name=amit
Example 4
This example shows how to use urldecode() function to decode query string parameters that are encoded with URLs. The string is divided by &, each parameter is decoded, and the key-value pairs that have been decoded will be printed.
<?php
// Mention encoded string here
$str = "my=bananas&are=yellow+and+green";
foreach(explode("&", $str) as $chunk) {
$param = explode("=", $chunk);
if($param) {
printf("Value for parameter \"%s\" is \"%s\"\n", urldecode($param[0]), urldecode($param[1]));
}
}
?>
Output
After running the above program, it generates the following output −
Value for parameter "my" is "bananas" Value for parameter "are" is "yellow and green"