[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: регулярные выражения
AndreyChaki
Здравствуйте!
появилась необходимость сделать определение перехода на сайт из поисковых систем, определять поисковую систему не составило труда, а вот с определением самого запроса возникают проблемы.
пытаюсь разбить строку регуляркой

сама регулярка
/[\S]+text=([\S]+)&[\S]*/

реферер
http://yandex.ru/yandsearch?text=fortexcompany.ru&clid=740030&lr=54


на что он выдает
fortexcompany.ru&clid=740030

почему строка не обрезается на символе "&"?
пробовал делать так
/[\S]+text=([\S]+)&clid=[\S]*/

но этот самый &clid= в реферере иногда после значения text= иногда до него.



Спустя 13 минут, 38 секунд (11.04.2012 - 08:50) h234 написал(а):
$str = "http://yandex.ru/yandsearch?text=fortexcompany.ru&clid=740030&lr=54";
$pattern = '/text=(.*?)&/';
preg_match($pattern, $str, $matches);
print_r($matches);

Спустя 55 секунд (11.04.2012 - 08:51) h234 написал(а):
Прочитай про ленивую квантификацию

Спустя 7 минут, 41 секунда (11.04.2012 - 08:59) AndreyChaki написал(а):
спасибо, то есть необязательно указывать что до и после нужного текста есть что либо?
и еще вопрос, как текст реферера
%D0%94%D0%B5%D0%BC%D0%BE%D0%A1%D0%B0%D0%B9%D1%82+%D1%81%D1%82%D1%83%D0%B4%D0%B8%D0%B8+%D0%90%D1%80%D1%82%D0%B5%D0%BD%D0%B0

сделать русским. есть какой либо универсальный метод, или загонять все в массив и использовать str_replace() ?

Спустя 5 минут, 3 секунды (11.04.2012 - 09:04) h234 написал(а):
Цитата (AndreyChaki @ 11.04.2012 - 05:59)
спасибо, то есть необязательно указывать что до и после нужного текста есть что либо?
и еще вопрос, как текст реферера
%D0%94%D0%B5%D0%BC%D0%BE%D0%A1%D0%B0%D0%B9%D1%82+%D1%81%D1%82%D1%83%D0%B4%D0%B8%D0%B8+%D0%90%D1%80%D1%82%D0%B5%D0%BD%D0%B0

сделать русским. есть какой либо универсальный метод, или загонять все в массив и использовать str_replace() ?

1. Почему? Ты указваешь, что тебе нужен текст после text= и до &
2. urldecode

Спустя 1 минута, 16 секунд (11.04.2012 - 09:05) AndreyChaki написал(а):
про ленивую квантификацию прочитал. все понятно

Спустя 5 часов, 26 минут, 18 секунд (11.04.2012 - 14:31) AndreyChaki написал(а):
небольшой оффтоп.
реферер гугла не содержит запрос а только ссылку на сайт.
тогда как яндекс и мэил передают в реферер конкретный запрос в ПС. можете подсказать как определять запрос по которому перешли на сайт с гугла
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.