Сайт:  
Фраза:

0){ switch($server) { // В зависимости от поисковой системы формируются результаты // мониторинга поисковой системы. // Функция pattern() возвращает результаты параметры для // регулярного выражения, с помощью которого будет производится // поиск номера позиции сайта сайта в тексте // страницы поисковой системы. // Функция findposition() возвращает номер позиции сайта case YANDEX: // Вывод информации о странице print "Ссылка на сайт найдена на странице: ". ($numberpage+1)."
"; print "Перейти по ссылке: Яndex
"; // Определение и вывод позиции запроса list($startpattern, $endpattern) = pattern(YANDEX); print "
Позиция: ". findposition($server, $site, $text, $startpattern, $endpattern); break; case APORT: // Вывод информации о странице print "Ссылка на сайт найдена на странице: ". ($numberpage+1)."
"; print "Перейти по ссылке: Апорт
"; // Определение и вывод позиции запроса list($startpattern, $endpattern) = pattern(APORT); print "
Позиция: ". findposition($server, $site, $text, $startpattern, $endpattern); break; case RAMBLER: // Вычисляем страницу, на которой находится запрашиваемый сайт $numberpage = $numberpage/15; $numberpage = (int)$numberpage; if($numberpage % 15 == 0 && $numberpage>15) $numberpage++; print "Ссылка на сайт найдена на странице:".($numberpage+1)."
"; // Выводим ссылку на страницу print "Перейти по ссылке: Рамблер
"; // Определение и вывод позиции запроса list($startpattern, $endpattern) = pattern(RAMBLER); print "
Позиция: ".findposition($server, $site, $text, $startpattern, $endpattern); // Так как ссылка на искомый сайт найдена, то просмотр страниц // поисковых систем в цикле While можно прекратить break; case GOOGLE: // Вывод информации о странице print "Ссылка на сайт найдена на странице: ". ($numberpage/10 + 1)."
"; print "Перейти по ссылке: Google
"; // Определение и вывод позиции запроса list($startpattern, $endpattern) = pattern(GOOGLE); print "
Позиция: ".($numberpage/10). findposition($server, $site, $text, $startpattern, $endpattern); break; case MAIL: // Вывод информации о странице print "Ссылка на сайт найдена на странице: ". ($numberpage/10 + 1)."
"; print "Перейти по ссылке: Поиск@MAIL.RU
"; // Определение и вывод позиции запроса list($startpattern, $endpattern) = pattern(MAIL); print "
Позиция: ". findposition($server, $site, $text, $startpattern, $endpattern); break; case MSN: // Вывод информации о странице print "Ссылка на сайт найдена на странице: ". ($numberpage+1)."
"; print "Перейти по ссылке: MSN Search
"; // Определение и вывод позиции запроса list($startpattern, $endpattern) = pattern(MSN); print "
Позиция: ".$numberpage. findposition($server, $site, $text, $startpattern, $endpattern); break; } } else { print "На 10 первых страницах ссылка на сайт отсутствует"; } } function geturl($numberpage, $endstr, $server) { switch ($server){ case YANDEX: return "http://www.yandex.ru/yandpage?q=818836167&p=$numberpage&ag=d&rpt=rad&qs=text%3D$endstr"; case RAMBLER: return "http://www.rambler.ru/srch?oe=1251&words={$endstr}&start=".$numberpage; case APORT: return "http://sm.aport.ru/scripts/template.dll?r={$endstr}&That=std&p={$numberpage}&HID=1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20"; case GOOGLE: //return "http://www.google.ru/search?q={$endstr}&hl=ru&lr=&start={$numberpage}&sa=N"; return "google/search.htm"; case MAIL: return "http://go.mail.ru/search?&q={$endstr}&no_morph=n&num=10&sf={$numberpage}"; case MSN: return "http://search.msn.com/results.aspx?q={$endstr}&first={$numberpage}1&FORM=PDRE{$numberpage}"; default: return ""; } } function openpage($link) { // Функция fopen() открывает файл для чтения и возвращает // указатель файла. $fd = fopen($link, "r"); $text=""; if (!$fd) print "Запрашиваемая страница не найдена"; else { // Чтение содержимого файла в переменную text while (!feof ($fd)) { $text .= fgets($fd, 4096); } } // Закрыть открытый указатель файла fclose ($fd); return ($text); } function findsite($site, $text) { preg_match_all("/$site/i", $text, $arr); return $arr; } function pattern($typepattern) { switch($typepattern) { case YANDEX: return array("
  • \d*)\">(\s*)]*)>(\s*)]*)", "([^>]*)>]*)><\/a>"); break; case APORT: return array("
  • \d*)>(\s*)]*)>(\s*)]*)href=\"([^\"]*)", "([^\"]*)\"([^>]*)>"); break; case RAMBLER: return array("
  • ]*)href=\"([^\"]*)", "([^\"]*)\""); break; case GOOGLE: return array("href=\"([^\"]*)", "([^\"]*)\""); break; case MAIL: return array("(\s*)]*)class=num>(?P\d*).<\/td>(\s*)

    ]*)href=\"([^\"]*)", "([^\"]*)\""); break; case MSN: return array("

    "); break; } } // Функция findposition() определяет позицию искомого сайта на странице // c результатами поиска в поисковой системе. // Передаваемые параметры: // server — имя поисковой системы // site — имя искомого сайта // text — содержимое страницы c результатами поиска в поисковой системе // startpattern и endpattern — параметры для регулярного выражения, они // определяются функцией pattern(). function findposition($server, $site, $text, $startpattern, $endpattern) { switch($server) { // Поиск позиции сайта в тексте страницы. // Для каждой поисковой системы применяется свой алгоритм поиска case YANDEX: // Регулярное выражение, осуществляющее поиск позиции сайта preg_match("/$startpattern$site$endpattern/iU", $text, $arr); return $arr['position']; case APORT: preg_match("/$startpattern$site$endpattern/iU", $text, $arr); return $arr['position']; case RAMBLER: preg_match('/
      /iU', $text, $arr); $pos_begin = $arr[1]; $text = substr($text, strpos($text, '

        Results

          '); $posend = strpos($text, '

    ', $pos + 40); $text = substr($text, $pos + 38, $posend - $pos - 38); // Находим текст относящийся к сайту и вырезаем его for($i = 0; $i < 20; $i++) { $pos = strpos($text,"
  • "); $posend = strpos($text, "
  • ", $pos+10); if(preg_match("/$startpattern$site$endpattern/i", substr($text,$pos,($posend-$pos)))) return $pos_begin; else $text = substr($text, $posend-1); $pos_begin++; } return 'Не определена'; default: return 'Не определена'; } } ?>