Поиск на основе Yandex.XML

четверг, 26 ноября 2009 г. на 07:31

Непонятно почему, но обычно вебмастера ленятся сделать нормальный поиск по своих сайтах. Даже на посещаемых сайтах иногда поиск отсутствует или работает не коректно. Чаще всего находят решение в поисковых скриптах от google, при етом умудряются еще и заработать на поисковой адс рекламе. Это все верно и хорошо но не для рунета. В рунете правит Яша. У него есть свой сервис для организации поиска на сайте, при чем он неплохо адаптирован под морфологию. Это Yandex.XML. Я хочу показать вам что организовать подобный поиск очень просто.

Шаг первый: регистрация ip на сайте

Идем на сайт сервиса  http://xml.yandex.ru/ и регистрируем свой Ip. Ну а если вы не знаете свой ip - его можно узнать через http://formyip.com/

Шаг 2: читаем manuals

Здесь все что нужно знать по сервису http://help.yandex.ru/xml/?id=316625

Шаг 3: пишем поисковый сркипт

для начала нужно получить поисковый get запрос

$q = $_GET['q'];

дальше нужно послать поисковый запрос на сервис  по адресу xmlsearch.yandex.ru/xmlsearch/

$query = "http://xmlsearch.yandex.ru/xmlsearch" . "/?page=" . $page . "&query=" . urlencode($q . " << host="\">

данные $page — номер страницы,  $query - запрос

для отправки запроса используем

$xml = file_get_contents($query);

Итак мы получили ответ от Яшки и теперь нам нужно взять xml шаблон тут http://homelerss.ru/sp-content/uploads/doc/search.xsl и переписать его под себя. там все довольно просо и все расписано по строкам.

Далее загружаем переписаный шаблон

$handle = fopen($filename, "r");
$xsl_data = fread($handle, filesize($filename));
fclose($handle);

и выполняем следующий скрипт

$xh = new xsltprocessor();

$xml = new DOMDocument();
$xsl = new DOMDocument(); 

$xml->loadXML($xml_data);
$xsl->loadXML($xsl_data); 

$xh->importStyleSheet($xsl);
$search_result = $xh->transformToXML($xml);

еще можно сменить кодировку:

$search_result = iconv("windows-1251", "utf-8", $search_result);

Вот что в итоге получилось:


print $search_result;

Вот и все.

0 коммент.

Отправить комментарий

BLACK-SEO-SOFT | Powered by Blogger | Entries (RSS) | Comments (RSS) | Designed by MB Web Design | XML Coded By Cahayabiru.com