Поиск…


Вступление

Поскольку вы кодируете PHP, вы, скорее всего, получите свое «я» в позиции, где вам нужно разбить URL на несколько частей. Очевидно, что есть несколько способов сделать это в зависимости от ваших потребностей. Эта статья объяснит вам эти способы, чтобы вы могли найти то, что лучше всего подходит для вас.

Использование parse_url ()

parse_url (): эта функция анализирует URL-адрес и возвращает ассоциативный массив, содержащий любой из различных компонентов URL-адреса, которые присутствуют.

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

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

Если вам нужен выделенный путь, вы можете использовать explode

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

)

Если вам нужна последняя часть раздела, вы можете использовать end () следующим образом:

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

Если URL-адрес содержит GET-вары, вы также можете получить их

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

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

Если вы хотите разбить вазы запросов, вы можете использовать parse_str () следующим образом:

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

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

Использование explode ()

explode (): Возвращает массив строк, каждый из которых является подстрокой строки, сформированной путем разбиения ее на границы, образованные разделителем строк.

Эта функция довольно проста.

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

Вы можете получить последнюю часть URL-адреса, выполнив следующие действия:

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

Вы также можете перемещаться внутри массива с помощью sizeof () в сочетании с математическим оператором следующим образом:

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

Использование basename ()

basename (): для строки, содержащей путь к файлу или каталогу, эта функция вернет конечный компонент имени.

Эта функция вернет только последнюю часть URL-адреса

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

Если у вашего URL-адреса есть больше вещей, и вам нужно имя dir, содержащее файл, вы можете использовать его с именем dirname () следующим образом:

$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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow