<?php header('Content-Type: text/html; charset=windows-1251'); //********************************************************************** // функция поиска в Google // $query - отформатированный запрос пользователя function googleSearch($query) { // присоединение текста запроса к URL-вызову Google-поиска $googleQuery = 'http://www.google.com/search?q='.$query; // отправка запроса и запись страницы результата в строку $parse=file_get_contents($googleQuery); // вырезание числа найденных результатов preg_match('|Results (.*) of about <b>(.*)</|Uis', $parse, $out); // убирание форматирования числа - удаление из него межразрядных запятых $res[1]=preg_replace('|,|Uis','',$out[2]); // обработка случая, когда результатов не было найдено // (строка результатов тогда другого формата и не будет найдена // при помощи preg_match выше) if($res[1]=="") $res[1] = "0"; // составление ссылки перехода к странице поиска $res[2] = '<A HREF="'.$googleQuery.'">Перейти к результатам поиска Google</A>'; // возврат результата в виде массива: // 1й элемент - число результатов // 2й элемент - ссылка перехода к странице поиска return $res; } //********************************************************************** function yandexSearch($query) { $yandexQuery = 'http://www.yandex.ru/yandsearch?text='.$query; $parse=file_get_contents($yandexQuery); preg_match('|Результат поиска: страниц&nbsp;&mdash; <b>(.*)</b>, сайтов|Uis', $parse, $out); $res[1]=preg_replace('|&nbsp;|Uis','',$out[1]); if($res[1]=="") $res[1] = "0"; $res[2] = '<A HREF="'.$yandexQuery.'">Перейти к результатам поиска Yandex</A>'; return $res; } //********************************************************************** function yahooSearch($query) { $yahooQuery = 'http://search.yahoo.com/search?p='.$query; $parse=file_get_contents($yahooQuery); preg_match('|of about (.*) for|Uis', $parse, $out); $res[1]=preg_replace('|,|Uis','',$out[1]); if($res[1]=="") $res[1] = "0"; $res[2] = '<A HREF="'.$yahooQuery.'">Перейти к результатам поиска Yahoo</A>'; return $res; } //********************************************************************** // обработка строки введенной пользователем // удаление лишних пробелов и замена оставшихся знаками + // для правильного формирования строки запроса поисковикам // $queryText - строка запроса пользователя function parseQueryString($queryText) { $query = preg_replace('/(\s)\s+/','\\1',$queryText); $query = preg_replace('| |Uis','+',$query); return $query; } //********************************************************************** // используется при обновлении страницы // создает шапку-HTML и форму ввода строки запроса // $queryText - строка запроса пользователя function refresh($queryText) { echo '<HTML> <HEAD> <meta content="text/html; charset=windows-1251"/> <TITLE>Результаты поиска</TITLE> </HEAD> <BODY BACKGROUND="office.gif" TEXT="#ffffff" LINK="#aaffaa" VLINK="#55cc55"> <BR><BR> <FORM METHOD="POST" ACTION="searcher.php"> <INPUT NAME="queryInput" TYPE="text" VALUE="'.$queryText.'" SIZE="60"> <INPUT TYPE="submit"> </FORM> <BR><BR>'; } //********************************************************************** // используется при обновлении страницы // дописывает закрывающие теги HTML function refresh2() { echo "</BODY></HTML>"; } //********************************************************************** // метод обработки запроса пользователя // вызывает функции поиска для каждой поисковой системы и // выводит результат на страницу // $queryText - строка запроса пользователя function getSearchResult($queryText) { refresh($queryText); $query = parseQueryString($queryText); $out = googleSearch($query); echo '<b>Google: <br><br> '.$out[1].'</b> результатов. <br> '.$out[2].' <br><br><br>'; $out = yandexSearch($query); echo '<b>Yandex: <br><br> '.$out[1].'</b> результатов. <br> '.$out[2].' <br><br><br>'; $out = yahooSearch($query); echo '<b>Yahoo: <br><br> '.$out[1].'</b> результатов. <br> '.$out[2].' <br><br>'; refresh2(); } // главная часть скрипта // если значение пустое, то просто обнавляется форма запроса // иначе вызывается метод обработки запроса пользователя if($queryInput == "") { refresh(""); refresh2(); } else { getSearchResult($queryInput); } ?>