Generare url codificati da array in PHP

Mattepuffo's logo
Generare url codificati da array in PHP

Generare url codificati da array in PHP

Ho scoperto una funzione di PHP che ci consente di passare i parametri prendendo i valori da un array: http_build_query!

Può essere molto comoda per generare url dinamici partendo da un qualsiasi array (magari anch'esso creato dinamicamente).

Vediamo qualche esempio.

Iniziamo con un array chiave:valore:

$arr = array(
    'nome' => 'matteo',
    'sito' => 'www.mattepuffo.com',
    'lavoro' => 'consulente informatico'
);
echo http_build_query($arr);

nome=matteo&sito=www.mattepuffo.com&lavoro=consulente+informatico

Ogni chiave dell'array diventa il nome del campo, ed ogni valore dell'array il corrispettivo valore del campo.

In questo caso, la funzione, fa tutto in automatico partendo dall'array.

Se passiamo un array senza chiavi, i nomi dei campi saranno numerici:

$arrSenzaPrefix = array(
    'matteo', 'www.mattepuffo.com', 'consulente informatico'
);
echo http_build_query($arrSenzaPrefix);

0=matteo&1=www.mattepuffo.com&2=consulente+informatico

Volendo possiamo anche passare un prefisso personalizzato, valorizzando il secondo parametro della funzione:

$arrSenzaPrefix = array(
    'matteo', 'www.mattepuffo.com', 'consulente informatico'
);
echo http_build_query($arrSenzaPrefix, 'mp_');

mp_0=matteo&mp_1=www.mattepuffo.com&mp_2=consulente+informatico

Infine, possiamo anche scegliere il separatore degli argomenti:

$arr = array(
    'nome' => 'matteo',
    'sito' => 'www.mattepuffo.com',
    'lavoro' => 'consulente informatico'
);
echo http_build_query($arr, '', '-');

nome=matteo-sito=www.mattepuffo.com-lavoro=consulente+informatico

Come vedete non c'è più & ma il -.

Enjoy!


Condividi

Commentami!