Собственный поисковик: Веб интерфейс
Категория PHP
Собственный поисковик: Веб интерфейс – урок о том как написать собственный поисковик на PHP, который будет искать в базе данных MySQL.
как сделать собственный поисковик?
как организовать поиск по базам данных?
Сегодня мы с вами сделаем поисковик типа google, yandex, aport, rambler, yahoo.
Точнее у нас будет МетаПоисковик. Поисковик будет искать в интернете сайты, веб-страницы по мета тегам и заголовку, как в самые первые поисковики, но насколько он будет хорошим зависит только от вас. Вы можете добавить что-нибудь новое, супер алгоритм и т.д и т.п. Может у Вас получится конкурировать даже с Google и Яндекс, кто знает все бывает.
Перед тем как начать писать свой поисковик, разделим его на 3 части:
1) Веб-интерфейс поисковика, реализуем мы его на языке PHP.
2) Индекс (База данных MySQL), где будет хранится вся информация о страницах.
3) Поисковый робот, индексирует веб-страницы, заносит данные в индекс, сделаем на Delphi.
сразу скажу что я не буду делать паука, который должен был бы находить url адреса.
Итак, начнем:
Веб-интерфейс поисковика
Веб интерфейс такого рода сайт, который позволяет производить поиск по базам MySQL.
создайте файл index.php. Код:
объясняю по частям:
во первых надо разделить свою страницу на две части, проще всего для этого использовать таблицы.
поисковая форма |
результаты поиска |
в верхней части надо создать форму, который будет посылать информация файлу index.php методом GET. На нем будут расположены 3 элемента, одно текстовое поле и две кнопки, одна для отправки запроса поисковику, а другая для очистки поля (конечно, можно им пренебречь, ведь в поискавиках обычно такого нет).
даем текстовому полю имя “search”, а кнопке отправляющий поисковый запрос – “Искать”, самой же форму оставляем имя по умолчанию – “form1″.
Результаты будут выводится в нижней части таблицы с помощью php, поэтому открываем тег
для начала подключимся к базе данных, для этого нам надо подключить конфигурационный файл, так как именно он подключает к базе данных mysql. Конфигурационный файл вынесен специально для удобства.
include "config.php";
далее проверяем была ли нажата кнопка “Искать”
if (isset($_GET['button'])){ выполняемый код, если нажата кнопка } else { выполняемый код, если НЕ нажата кнопка }
Если нажата кнопка искать, то проверяем наличие поискового запроса
if (isset($_GET['search'])){$search=$_GET['search'];}
Если есть присваиваем переменной $search текст поискового запроса, для последующей обработки. Надо будет наш запрос подредактировать, удалить опасные символы и т.д.
$search=trim($search);
$search=stripslashes($search);
$search=htmlspecialchars($search);
$search_t=$search;
$search=str_replace("'",""",$search);
$search=ereg_replace(" +"," ",$search);
$search=strtolower($search);
$search=trim($search);
теперь проверяем наш запрос, он не должен быть пустым и короче 3 символов (чтоб сервер не сильно нагружался).
if ($search!='' && strlen($search)>2){ код поиска по базе данных } else {echo "
Задан пустой поисковый запрос или строка поиска содержит менее 3 символов.
";}
Если поисковый запрос удовлетворяет верхнему условию, то запускается непосредственно сам поисковый скрипт. %s Keywords: %s
$result=mysql_query("SELECT * FROM base WHERE description LIKE '%$search%' OR title LIKE '%$search%' OR keywords LIKE '%$search%' OR url LIKE '%$search%' LIMIT $start, $num",$db);
if (!$result){exit(mysql_error());}
$i=1;
if (mysql_num_rows($result)>0){
echo "Найдено ".$posts." страниц";
$myrow=mysql_fetch_array($result);
do
{
printf ("%s. %s
%s",$myrow['url'],$i+$start,$myrow['title'], $myrow['description'],$myrow['keywords'],$myrow['url'],$myrow['url']);
$i++;
}
while ($myrow=mysql_fetch_array($result));
Поиск будет производится посредством LIKE без учета релевантности, поэтому наш поисковик будет выводить результаты по дате добавления. Если объяснить работу этого скрипта простыми словами, то будет так: Выбрать все записи из таблицы base где в полях description, title, keywords, url встречается запрос $search по $num количеству начиная с $start. Переменная $num – количество результатов на страницу, я поставил 10, так как в Google и Yandex 10 =) Далее запускаем цикл, который будет выводить результаты поиска через printf.
Конечно же вы можете заменить мой “алгоритм” поиска на свой более лучший с учетом релевантности, возможно вы сделаете типо тИЦ и PR.
]]>Добавить в закладки
Теги: google, PHP, программирование, скрипт, яндекс
3 комментариев по “Собственный поисковик: Веб интерфейс”
-
]]>
Собственный поисковик: Веб интерфейс (продолжение)
]]>
сказал:
июля 17, 2009 в 00:42[...] Веб интерфейс (продолжение) – вторая часть урока о том как написать собственный поисковик на PHP, который будет искать в базе данных [...]
-
]]>
Собственный поисковик: База Данных
]]>
сказал:
июля 17, 2009 в 22:26[...] Урок создания поисковика – часть 3 «База данных». В этом уроке мы рассмотрим базу данных нашего поисковика («Урок создания собственного поисковика»). [...]
-
]]>
Собственный поисковик: Поисковый робот
]]>
сказал:
июля 17, 2009 в 23:07[...] Поисковый робот» – 3 часть урока по созданию собственного поисковика, мы с вами создадим поисковый робот (crawler или spider), [...]
Оставьте комментарий: