ADNKRONOS

Tecnologia

Amazon Books

WallPapers

Driver Image Banner 728 x 90

Manipolazione di URL

Il PHP mette a disposizione degli sviluppatori anche delle funzioni per la manipolazione di indirizzi URL (Uniform Resource Locator). Tali funzioni consentono di eseguire facilmente le operazioni scomposizione, codifica e decodifica di una URL.

 

 

 

Scomposizione di una URL

Un indirizzo URL si compone di diverse parti; nel caso più semplice avremo un protocollo, ad esempio HTTP o FTP, un nome di host ed un percorso, come nell'esempio seguente

// indirizzo url

http://www.ostiasport.it/index.php

Nella URL ora mostrata http rappresenta il protocollo, www.ostiasport.it è il nome dell' host e /index.php è il percorso relativo al server.

Quando si ha necessità di scomporre una URL per isolare uno o più dei suoi componenti possiamo utilizzare la funzione parse_url().

Questa funzione prevede in input una stringa contenente l'indirizzo che vogliamo scomporre e restituisce un array associativo in cui ogni elemento corrisponde ad una parte della URL.

Le chiavi inserite nell' array associativo sono le seguenti:

scheme;

host;

port;

user;

pass;

path;

query;

fragment.

Esempio:

// indirizzo da scomporre

$URL = “http://www.ostiasport.it/index.php”;

$pezzi = parse_url($URL);

// mostro le componenti della url

echo “il protocollo è “ .$pezzi[“scheme”].”<br>”;

echo “l'host si chiama “.$pezzi[“host”].”<br>”;

echo “il percorso è “.$pezzi[“path”];

Codifica e decodifica delle url

Quando si trasmettono informazioni mediante una form HTML che utilizza il metodo GET i valori dei suoi campi vengono inseriti nell'indirizzo dello script di destinazione.

Questa operazione richiede una opportuna codifica di tali valori che assicuri che la URL sia ben formata.

Nel caso di una form HTML la codifica avviene automaticamente ( la esegue il browser); in altre circostanze l'indirizzo URL comprensivo dei valori codificati viene “costruito” dal programmatore, che quindi deve occuparsi della conversione.

La funzioni urlencode() e urldecode() assolvono a tali compiti effettuando la conversione, che salvo eccezioni, consiste nel sostituire i caratteri non alfanumerici con un simbolo di percentuale % seguito dalle due cifre esadecimali del corrispondente codice ASCII.

Per esempio, supponiamo di voler passare ad uno script PHP un parametro categoria il cui valore debba essere la stringa “caccia e pesca”.

// indico lo script di destinazione

$script = “http://www.ostiasport.it/visualizza.php”;

// passo l'argomento

$categoria = “caccia e pesca”;

// l'indirizzo generato

echo <a href \”$script?categoria=”;

echo urlencode($categoria);

echo “\”>Clicca qui</a>”;