Получить части URL в PHP

Мне просто интересно, каким будет наилучший способ извлечения "параметров" из URL с использованием PHP.

Если я получил URL:

http://example.com/user/100

Как я могу получить идентификатор пользователя (100) с помощью PHP?

Ответ 1

Чтобы быть точным, вы хотите начать с parse_url().

$parts=parse_url("http://example.com/user/100");

Это даст вам массив с горсткой ключей. То, что вы ищете, это path.

Разделите путь на / и возьмите последний.

$path_parts=explode('/', $parts['path']);

Ваш идентификатор теперь находится в $path_parts[count($path_parts)-1].

Ответ 2

Вы можете использовать parse_url(), то есть:

$parts = parse_url("http://x.com/user/100");
$path_parts= explode('/', $parts[path]);
$user = $path_parts[2];
echo $user; 
# 100

parse_url()

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

Эта функция не предназначена для проверки заданного URL, она только разбивает его на перечисленные выше части. Частичные URL также принимаются, parse_url() изо всех сил пытается их правильно проанализировать.

Ответ 3

$url = "http://example.com/user/100";
$parts = Explode('/', $url);
$id = $parts[count($parts) - 1];

Ответ 4

Я знаю, что это старый поток, но я думаю, что следующий ответ лучше: basename(dirname(__FILE__))