Задать вопрос

Какое регулярное выражение использовать (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/?
  • Вопрос задан
  • 2395 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽