urlencode serve a codificare un parametro della query string affichè possa essere utilizzato in un url. urldecode non è necessario per recuperare il contenuto di un parametro della query string dell'url.
Posto un esempio affichè chiarisca:
(salva il file come testo codficato utf-8)
Codice PHP:
<!DOCTYPE html>
<html>
<head>
<title>urlencode</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
</head>
<body>
<?php
if(isset($_GET['msg']))
echo "Messaggio Ricevuto: $_GET[msg]";
$messaggio = "Questa è la mia città";
?>
<div><a href="index.php?msg=<?php echo urlencode($messaggio)?>">Cliccami</a></div>
</body>
</html>
La url del link cliccami sarà:
codice:
http://localhost/index.php?msg=Questa+%C3%A8+la+mia+citt%26agrave%3B
L'output della pagina dopo aver cliccato il link cliccami:
codice:
Messaggio Ricevuto: Questa è la mia città
Cliccami