NOTA
Come al solito l’ignoranza (la mia) aguzza l’ingegno: in ogni caso penso sia meglio utilizzare la funzione di libreria parse_url
Oggi facevo un po’ di prove con il PHP sdk di Facebook. Mi sono ritrovato a dover recuperare le varie parti della query string di un URL per poterle poi utilizzare nel codice. In pratica mi ritrovavo con un URL tipo:
https://graph.facebook.com/me/friends?access_token=AAACrnu&limit=20&method=GET&offset=20&__after_id=719091958
e avevo bisogno di un array di questo tipo:
array(5) {
["access_token"]=>
string(7) "AAACrnu"
["limit"]=>
string(2) "20"
["method"]=>
string(3) "GET"
["offset"]=>
string(2) "20"
["__after_id"]=>
string(9) "719091958"
}
Ho scritto così questa semplice funzione:
/**
* Returns an array with url query parts
* @author Giustino Borzacchiello
*
* From this:
* http://domain.com?a=foo&b=bar&c=ciccio
* to this:
* array(3) {
* ["a"]=>
* string(3) "foo"
* ["b"]=>
* string(3) "bar"
* ["c"]=>
* string(6) "ciccio"
* }
*
* @param $url Url from which get the query parts
*
* */
function getUrlQueryParts($url)
{
# Recupera la query string dell'url
$query = parse_url($url, PHP_URL_QUERY);
# Suddividi la stringa in corrispondenza delle &
$queryPieces = explode('&', $query);
# Prepara l'array da restituire
$result = array();
foreach($queryPieces as $query)
{
# Separa ogni elemento in corrispondenza del simbolo =
# La funzione explode restituisce un array di due elementi
$query = explode('=', $query);
# Recupera chiave e valore
$key = $query[0];
$val = $query[1];
# Salva chiave e valore nell'array risultato
$result[$key] = urldecode($val);
}
return $result;
}
Spero che sia utile!