Какое регулярное выражение использовать (preg_replace)?

Имеется ссылка вида:
xxx.xx/yyy/?zzz=zzz

Я делаю из неё 2 переменные (в 1 url, в другой get-запрос если есть):
$url = preg_replace('/^(.+?)(\?.*?)?(#.*)?$/', '$1$3', $current_url);
$get = preg_replace('/^(.+?)(\?.*?)?(#.*)?$/', '$2', $current_url);


Но ссылка так же может быть вида:
xxx.xx/yyy/page/2/?zzz=zzz
или
xxx.xx/yyy/yyy/yyy/page/21
и т. п.

Как вырезать из таких ссылок page/2/?
  • Вопрос задан
  • 2394 просмотра
Решения вопроса 1
rdifb0
@rdifb0
Программист, реалист
$urls = array('xxx.xx/yyy/page/2/?zzz=zzz', 'xxx.xx/yyy/yyy/yyy/page/21');
 
foreach ($urls as $url) {
 
    $parts = parse_url($url);
    var_dump($parts);
    $parts['path2'] = preg_replace('~/page/\d+/?$~', '', $parts['path']);
    var_dump($parts);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы