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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow