Есть ли PHP-эквивалент Perl URI :: ParseSearchString?

Я делаю некоторую работу для клиента, которая включает в себя анализ информации о реферере из Google и др., Чтобы нацелить различные части страницы на ключевые слова поиска пользователя.

Я заметил, что в CPAN Perl есть модуль под названием URI :: ParseSearchString, который, кажется, делает именно то, что мне нужно. Проблема в том, что мне нужно сделать это на PHP.

Итак, чтобы не изобретать колесо, знает ли кто-нибудь, есть ли библиотека для PHP, которая делает то же самое / подобное?


person Nils Luxton    schedule 15.04.2011    source источник


Ответы (3)


Я автор модуля. Насколько мне известно, я никогда не видел ничего подобного для PHP. Если вы что-нибудь встретите, дайте мне знать.

При этом я не могу представить, что это очень сложно перенести на PHP, и я могу попробовать это, если вы не найдете там ничего похожего.

Спирос

person Spiros    schedule 15.04.2011
comment
Спасибо - я был очень удивлен, когда мои поиски не дали результатов! Возможно порт - лучший вариант; Я буду держать вас в курсе результатов моей охоты, и если ничего не выяснится, возможно, мы сможем поговорить о сотрудничестве над портом? - person Nils Luxton; 15.04.2011
comment
Я еще не приступил к этой работе, но собираюсь начать когда-нибудь на этой неделе. Дам вам знать. - person Nils Luxton; 09.05.2011
comment
Привет, Спирос - я сделал очень простой перенос этого на PHP за выходные. Я поинтересовался, могу ли я предоставить вам какие-то контактные данные, чтобы мы могли обсудить это в другом месте? Спасибо - person Nils Luxton; 16.05.2011
comment
Привет, извините за поздний ответ - напишите мне на s dot denaxas на gmail.com - person Spiros; 07.07.2011

parse_str() - это то, что вы ищете.

Вы также можете использовать parse_url() для получения строки поиска.

person soulmerge    schedule 15.04.2011
comment
Спасибо - однако я укажу вам на комментарий, который я оставил к сообщению @ sdolgy. - person Nils Luxton; 15.04.2011

Возможно, это слишком неэффективно или http_referer не показывает полный uri ...

function parse_uri($uri) {
  if (substr_count('?', $uri) > 0) { 
    $queryString = explode('?', $uri);
    return parse_str($queryString[1]);
  } else { 
    return parse_str($uri);
  }
}


if (isset($_SERVER['HTTP_REFERER'])) { 
        print_r(parse_uri($_SERVER['HTTP_REFERER']));
}
person sdolgy    schedule 15.04.2011
comment
Спасибо - однако я не очень-то ищу совета о том, как использовать свой собственный - этап синтаксического анализа тривиален, я ищу что-то, что содержит знания о поисковых системах и их параметрах, как это делает ParseSearchString. - person Nils Luxton; 15.04.2011