PHP
Come abbattere un URL
Ricerca…
introduzione
Come codifichi PHP, molto probabilmente ti troverai in una posizione in cui devi abbattere un URL in più parti. Ovviamente c'è più di un modo per farlo in base alle tue esigenze. Questo articolo ti spiegherà in che modo puoi trovare ciò che funziona meglio per te.
Utilizzo di parse_url ()
parse_url (): questa funzione analizza un URL e restituisce un array associativo contenente uno qualsiasi dei vari componenti dell'URL presenti.
$url = parse_url('http://example.com/project/controller/action/param1/param2');
Array
(
[scheme] => http
[host] => example.com
[path] => /project/controller/action/param1/param2
)
Se hai bisogno del percorso separato puoi usare esplodere
$url = parse_url('http://example.com/project/controller/action/param1/param2');
$url['sections'] = explode('/', $url['path']);
Array
(
[scheme] => http
[host] => example.com
[path] => /project/controller/action/param1/param2
[sections] => Array
(
[0] =>
[1] => project
[2] => controller
[3] => action
[4] => param1
[5] => param2
)
)
Se hai bisogno dell'ultima parte della sezione puoi usare end () in questo modo:
$last = end($url['sections']);
Se l'URL contiene GET vars puoi recuperarli anche tu
$url = parse_url('http://example.com?var1=value1&var2=value2');
Array
(
[scheme] => http
[host] => example.com
[query] => var1=value1&var2=value2
)
Se desideri abbattere la query vars puoi usare parse_str () in questo modo:
$url = parse_url('http://example.com?var1=value1&var2=value2');
parse_str($url['query'], $parts);
Array
(
[var1] => value1
[var2] => value2
)
Usare explode ()
explode (): restituisce una matrice di stringhe, ognuna delle quali è una sottostringa di stringa formata dividendola sui limiti formati dal delimitatore di stringhe.
Questa funzione è praticamente diretta.
$url = "http://example.com/project/controller/action/param1/param2";
$parts = explode('/', $url);
Array
(
[0] => http:
[1] =>
[2] => example.com
[3] => project
[4] => controller
[5] => action
[6] => param1
[7] => param2
)
Puoi recuperare l'ultima parte dell'URL facendo questo:
$last = end($parts);
// Output: param2
Puoi anche navigare all'interno dell'array usando sizeof () in combinazione con un operatore matematico come questo:
echo $parts[sizeof($parts)-2];
// Output: param1
Utilizzo di basename ()
basename (): data una stringa contenente il percorso di un file o di una directory, questa funzione restituirà il componente del nome finale.
Questa funzione restituirà solo l'ultima parte di un URL
$url = "http://example.com/project/controller/action/param1/param2";
$parts = basename($url);
// Output: param2
Se il tuo URL ha più cose e quello di cui hai bisogno è il nome della directory che contiene il file puoi usarlo con dirname () in questo modo:
$url = "http://example.com/project/controller/action/param1/param2/index.php";
$parts = basename(dirname($url));
// Output: param2