Почему бы не использовать два взрыва? Конечно, вы можете сделать это с помощью регулярного выражения. Но учитывая способ определения URL, я сначала удалил бы все после первого ?
, затем все до последнего /
в остатке.
В то время как некоторые считают регулярное выражение элегантным (и на самом деле я мог бы даже использовать его сам), strpos
и strrpos
столь же быстр и надежен здесь.
$end = strpos($test, "?") - 1;
$sta = strrpos(substr($test, 0, $end), "/") + 1;
$ret = substr($test, $sta, $end);