php регулярные выражения. Пример получения get параметра из пути

Получаем get-параметр из пути с помощью функции preg_match():

preg_match(
    '%^.+ref=(.+)?&*$%',
    $request->getUri(),
    $matches
);
  • %% - делиметры
  • ^$ - начало и конец строки
  • ref= - имя get-параметра
  • (.+) - непосредственно значение get-параметра, положеное в "карман"
  • ?&* - возможно встретится &, отделяющий следующий параметр.

В $matches[0] - будет вся строка пути, если совпадение найдено
В $matches[1] - наше значение параметра

if (!empty($matches)) {
    $ref = $matches[1];
    // ...
}

Источники

  • https://ru.stackoverflow.com/questions/122778/%d0%9a%d0%b0%d1%80%d0%bc%d0%b0%d0%bd%d1%8b-%d0%b2-%d1%80%d0%b5%d0%b3%d1%83%d0%bb%d1%8f%d1%80%d0%bd%d1%8b%d1%85-%d0%b2%d1%8b%d1%80%d0%b0%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f%d1%85
  • https://books.google.ru/books?id=kLCnDgAAQBAJ&pg=PA380&lpg=PA380&dq=%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5+%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F+%D0%BA%D0%BE%D1%82%D0%B5%D1%80%D0%BE%D0%B2&source=bl&ots=0KIipl0hrZ&sig=ACfU3U1ms1aoaoHaAgLLsDW9Ls_MPOOfeg&hl=ru&sa=X&ved=2ahUKEwie0drQhMjgAhUp8KYKHaqCDcIQ6AEwB3oECAAQAQ#v=onepage&q=%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5%20%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BA%D0%BE%D1%82%D0%B5%D1%80%D0%BE%D0%B2&f=false