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://tutorialspoint.com") . "\n"; 
   echo urlencode("https://tutorialspoint.com/php/index.htm") . "\n"; 
   echo urlencode("https://tutorialspoint.com/html/index.htm") . "\n"; 
   echo urlencode("https://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 protected]&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
php_function_reference.htm
Advertisements