Сначала мы можем попробовать разбить строку на ?
, чтобы удалить строку запроса, если она существует.Затем разделите на /
разделитель пути и получите доступ к двум последним путям:
$url = "site.com/index.php/val1/val2?get1=val1&get2=val2";
$url = explode('?', $url)[0];
$paths = explode('/', $url);
echo "second to last element: " . $paths[count($paths)-2] . "\n";
echo "last element: " . $paths[count($paths)-1];
Это напечатает:
second to last element: val1
last element: val2
В этом ответе полностью исключено регулярное выражение, что может привести к несколько лучшемупроизводительность.