Обрезать строку PHP - PullRequest
1 голос
/ 21 мая 2019

Я храню URL-адрес в переменной с именем $ page .

. Я использую следующий код для получения значения utm_campaign .

preg_match_all('#utm_campaign=([^\s]+)#', $page, $matches);
$utm_campaign = implode(' ', $matches[1]);

Однако я обнаружил, что если URL-адрес www.site.com /? Utm_campaign = test & utm_source = test , он установит $utm_campaign равным test & utm_source = test вместо test .

Как мне исправить мой код выше, чтобы решить эту проблему?

Ответы [ 2 ]

2 голосов
/ 21 мая 2019

добавить & после \s.

См .:

#utm_campaign=([^\s&]+)#

Regex101

1 голос
/ 21 мая 2019

Используйте parse_url и parse_str, чтобы получить параметры запроса следующим образом:

$url = 'www.site.com/?utm_campaign=test&utm_source=test';
parse_str(parse_url($url)['query'], $params);
print_r($params['utm_campaign']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...