Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Парсер запросов с google. Помогите доработать! 
:(
    Опции темы
DiMoN_TD
Дата 20.11.2008, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



Привет!
У меня следующий парсер:

Пример запроса:

"http://www.google.ru/search?hl=ru&q=my_qyuery&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=&aq=f&oq="


Код

<?php
if (ereg(".?(google.ru)","$referer")) {
    preg_match("/.*&q=(.*?)&*/",urldecode($referer), $matches);
    $query = $matches[1];    
}
?>


Так вот. Есть еще и запросы по типу:

"http://www.google.ru/search?q=my_qyuery&hl=ru&lr=&aq=f&oq="

Т.е. грубо говоря мое правило уже не работает, т.к. перед "q=" идет знак вопроса "?"

Так вот. Я не силен в рег. выражениях, потому прошу вас помочь мне.
Как задать правило, чтобы оно дейстововало как для "?q=my_quyery&" и для "&q=my_query&"

Заранее спасибо
PM MAIL   Вверх
Sanchezzz
  Дата 20.11.2008, 06:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



а так:


Код

eregi("q=([^&]*)", $ref."&", $query);
 // результат           
$quer = $query[1];


 в $ref = твой запрос урл


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
skyboy
Дата 20.11.2008, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Sanchezzz, а что вернет твой код, если "aq=f" окажется раньше искомого "q=my_quyery"?
PM MAIL   Вверх
destrd
Дата 20.11.2008, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 1.10.2008

Репутация: 3
Всего: 4



Цитата(DiMoN_TD @  20.11.2008,  00:24 Найти цитируемый пост)
preg_match("/.*&q=(.*?)&*/",urldecode($referer), $matches);

/.*[&\?]q=(.*?)&*/
Или & или ?

--------------------
Some people, when confronted with a problem, think, "I known, I'll use regular expressions." Now they have two problems.        -- Jamie Zawinski in comp.lang.emacs
PM MAIL ICQ   Вверх
sTa1kEr
Дата 20.11.2008, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



http://php.net/parse_str

Добавлено @ 13:06
Код

$url = "http://www.google.ru/search?q=my_qyuery&hl=ru&lr=&aq=f&oq=";
parse_str(parse_url($url, PHP_URL_QUERY), $parts);
var_dump($parts);


Это сообщение отредактировал(а) sTa1kEr - 20.11.2008, 13:09
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0799 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.