Как разложить URL path на части?

Для разбора URL path на части в PHP можно использовать несколько способов, в зависимости от потребностей и предпочтений разработчика.

Один из самых распространенных и простых способов - использование функции explode(). Функция explode() разделяет строку на массив подстрок по указанному разделителю. В случае с URL path, разделителем является символ "/". Для получения массива частей URL path вы можете использовать следующий код:

$url = $_SERVER['REQUEST_URI']; // Получаем URL path из глобальной переменной $_SERVER
$pathParts = explode('/', $url); // Разбиваем URL path на части

Теперь переменная $pathParts содержит массив, в котором каждый элемент представляет собой одну часть URL path.

Например, если URL path равен "/blog/article/10", то после выполнения кода выше массив $pathParts будет содержать следующие значения:

Array
(
    [0] => ''
    [1] => 'blog'
    [2] => 'article'
    [3] => '10'
)

Обратите внимание, что в начале массива есть пустой элемент, это потому что URL path начинается с символа "/", и при его разделении получается пустая строка перед первой частью.

Если вам нужно удалить пустые элементы из массива, вы можете использовать функцию array_filter():

$pathParts = array_filter($pathParts);

Теперь массив $pathParts будет содержать только непустые части URL path:

Array
(
    [1] => 'blog'
    [2] => 'article'
    [3] => '10'
)

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

$url = $_SERVER['REQUEST_URI']; // Получаем URL path из глобальной переменной $_SERVER
$urlComponents = parse_url($url); // Разделяем URL на компоненты
$path = $urlComponents['path']; // Получаем только URL path из компонентов

$pathParts = explode('/', $path); // Разбиваем URL path на части

Теперь массив $pathParts будет содержать аналогичные значения как и в предыдущем примере.

В случае, если URL path может содержать дополнительные параметры (например, "?page=1") и вам нужно получить только базовую часть URL path без параметров, вы можете использовать функцию strtok():

$url = $_SERVER['REQUEST_URI']; // Получаем URL path из глобальной переменной $_SERVER
$urlComponents = parse_url($url); // Разделяем URL на компоненты

$path = strtok($urlComponents['path'], '?'); // Получаем только базовую часть URL path без параметров
$pathParts = explode('/', $path); // Разбиваем URL path на части

Теперь массив $pathParts содержит только базовую часть URL path без параметров.

В итоге, вы можете использовать функции explode() и parse_url() для разложения URL path на части в PHP. При этом, если вам нужно получить только базовую часть URL path без параметров, можно обратиться к функции strtok(). Не забывайте также про проверку и фильтрацию полученных данных, чтобы избежать возможных ошибок и безопасности.