Szukaj…


Wprowadzenie

Gdy kodujesz PHP, najprawdopodobniej znajdziesz się w pozycji, w której musisz podzielić URL na kilka części. Istnieje oczywiście więcej niż jeden sposób, w zależności od potrzeb. W tym artykule wyjaśnimy Ci te sposoby, abyś mógł znaleźć to, co najlepiej Ci odpowiada.

Korzystanie z parse_url ()

parse_url (): Ta funkcja analizuje adres URL i zwraca tablicę asocjacyjną zawierającą dowolny z różnych składników adresu URL, które są obecne.

$url = parse_url('http://example.com/project/controller/action/param1/param2');

Array
(
    [scheme] => http
    [host] => example.com
    [path] => /project/controller/action/param1/param2
)

Jeśli potrzebujesz oddzielonej ścieżki, możesz użyć opcji eksplodowania

$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
        )

)

Jeśli potrzebujesz ostatniej części sekcji, możesz użyć end () w następujący sposób:

$last = end($url['sections']);

Jeśli adres URL zawiera zmienne GET, możesz je również odzyskać

$url = parse_url('http://example.com?var1=value1&var2=value2');

Array
(
    [scheme] => http
    [host] => example.com
    [query] => var1=value1&var2=value2
)

Jeśli chcesz rozbić zmienne zapytania, możesz użyć parse_str () w następujący sposób:

$url = parse_url('http://example.com?var1=value1&var2=value2');
parse_str($url['query'], $parts);

Array
(
    [var1] => value1
    [var2] => value2
)

Korzystanie z explode ()

explode (): Zwraca tablicę ciągów, z których każdy jest podciągiem ciągu utworzonego przez podzielenie go na granice utworzone przez ogranicznik ciągu.

Ta funkcja jest dość prosta.

$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
)

Możesz pobrać ostatnią część adresu URL, wykonując następujące czynności:

$last = end($parts);
// Output: param2

Możesz także nawigować wewnątrz tablicy za pomocą sizeof () w połączeniu z operatorem matematycznym takim jak ten:

echo $parts[sizeof($parts)-2];
// Output: param1

Używanie basename ()

basename (): Biorąc pod uwagę ciąg znaków zawierający ścieżkę do pliku lub katalogu, funkcja zwróci końcowy składnik nazwy.

Ta funkcja zwróci tylko ostatnią część adresu URL

$url = "http://example.com/project/controller/action/param1/param2";
$parts = basename($url);
// Output: param2

Jeśli w adresie URL znajduje się więcej elementów, a potrzebujesz nazwy katalogu zawierającego plik, możesz użyć go z dirname () w następujący sposób:

$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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow