php поиск для сайта php
Пишем поиск по сайту на PHP и MySQL
Сегодня мы напишем собственный поиск по сайту с использованием PHP и MySQL. Первым делом рассмотрим краткий алгоритм.
Пользователь выполняет POST запрос из формы поиска, этот запрос передается специальному скрипту-обработчику, который должен обработать поисковый запрос пользователя и возвратить результат.
Сначала скрипт должен обработать должным образом запрос пользователя для обеспечения безопасности, затем выполняется запрос к базе данных, который возвращает в ассоциативном массиве результаты, которые должны будут выводиться на экран. Итак, приступим.
Для начала создадим форму поиска на нужной нам странице:
Эта форма и будет отправлять сам поисковый запрос скрипту search.php. Теперь создадим сам скрипт-обработчик.
Естественно, данные таблиц БД нужно задать собственные. Рассмотрим, что делает эта функция. Первые 4 строчки обрабатывают запрос, чтобы он стал безопасным для базы. Такую обработку нужно делать обязательно, т. к. любая форма на Вашем сайте — это потенциальная уязвимость для злоумышленников.
Затем идет проверка, не пустой ли запрос. Если запрос пустой, то возвращаем соответствующее сообщение пользователю. Если запрос не пустой, проверяем его на размер.
Если поисковый запрос имеет длину менее 3 или более 128 символов, также выводим соответствующие сообщения пользователю. Иначе, выполняем запрос к базе данных, который делает выборку идентификатора страницы, ее заголовка, описания, описания ссылки, категорию, если она есть и идентификатор самой статьи, в которой найдены совпадения нужных нам полей с поисковым запросом.
В данном случае мы делаем сравнение с текстом статьи, ее заголовком, ключевыми словами и описанием. Если ничего не найдено, выводим пользователю сообщение об этом. Если запрос возвратил хотя бы одну запись, выполняем в цикле еще один запрос, который делает выборку из таблицы со страницами ссылку на страницу, на которой находится статья.
Если у Вас все статьи на одной странице, вы можете опустить этот шаг. После выполнения запроса при каждой итерации цикла в переменную $text Дозаписываем одну найденную статью.
Теперь осталось на этой же странице search.php сделать вызов этой функции и вывести ее результат пользователю.
Также вы можете упростить скрипт поиска по Вашему усмотрению. Желательно создать стиль в таблице css для выводимой информации, чтобы выводимая информация смотрелась более красиво и читабельно. Все замечания вопросы по скрипту можете задавать в комментариях.
Универсальный поиск по сайту на PHP
В данной статье я хотел бы поделиться с вами опытом в программировании на php, и показать, как можно довольно просто организовать поиск по-вашему сайту.
Для начала нам понадобится создать список файлов, в которых мы будем искать нужное слово или сочетание нескольких слов. Для этого создадим файл files.dat с именами файлов, в которых будет осуществляться поиск.
Для поиска можно использовать следующие функции: ereg и eregi а также функции поиска вхождений регулярных выражений и их преобразования ereg_replace и eregi_replace. Ereg отличается от eregi только тем, что первая ищет без учета регистра символов, а вторая их учитывает. Но так как мы будем осуществлять поиск в текстовых или html файлах предпочтительней для нас использовать подсветку искомых слов в выводимом результате, ак как это делают многие поисковые системы, и для этого мы воспользуемся двумя последними функциями, т.е. ereg_replace и eregi_replace.
Чтобы найти вхождение слова в строку, а именно так мы в дальнейшем представим наши файлы функции поиска, нам нужно составить правильное регулярное выражение, т.е. как бы составит запрос понятный функциям ereg_replace и eregi_replace. Для этого нужно немного изучить синтаксис регулярных выражений, но этим вы сможете заняться как-нибудь на досуге, а в данном случае будет что-то вроде этого: «\0«, т.е. здесь я использовал теги и для выделения найденных слов, вы можете использовать любые другие теги. В результате наша функция пока будет выглядеть так:
Можно так же написать еще одну функцию, для чтения файла (можно использовать в качестве пути URL к файлу) в строку:
Функцию поиска мы написали, теперь осталось написать код для поиска, он будет выглядеть примерно так:
Полученный код вы без проблем можете использовать на своем сайте, несмотря на его просту для большинства небольших сайтов его должно хватить. Основным недостатком кода является то, что при поиске в html файлах результат может выводиться не в особо-читаемой форме. Поэтому данный скрипт предназначен в основном для поиска в текстовых файлах.
Если Вы хотите учитывать слова, заключенные в кавычки, то вам понадобиться такое регулярное выражение:
Вы получите отдельные слова и фразы в кавычках
Простой поиск при помощи PHP, jQuery и MySQL
Лучший способ удержать пользователя на сайте, это позволить ему найти, то что он ищет. Если вы делаете для этого удобную систему, то уровень предпочтения вашего сайта будет расти и пользователь обязательно вернётся для того, чтобы найти то, что его интересует.
Я вам покажу как создать простую, но эффективную по функционалу, поисковую форму, которая будет использоваться для поиска статей на сайте. Результаты будут появляться на странице без никаких перезагрузок, что несомненно является лучшим способом подачи информации.
Я создам 2 файла: search.php, который будет содержать HTML и JavaScript. Второй файл, do_search.php будет содержать PHP код. Приступим к созданию первого файла:
В этом файле мы создали обычную HTML форму, которая посылает POST запрос в бэк энд – файлу do_search.php.
PHP код содержит комментарии, по которым вы с лёгкостью сможете понять работу скрипта. Если в базе данных нашлись совпадения, вы показываете их вашему пользователю, выделяя жирным те слова, которые искал пользователь.
Придадим всему этому немного CSS:
Вот вы и научились создавать простейшую поисковую форму, которая работает без перезагрузки страницы. Надеюсь, урок вам понравился.
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.codeforest.net/simple-search-with-php-jquery-and-mysql
Перевел: Станислав Протасевич
Урок создан: 16 Марта 2011
Просмотров: 146780
Правила перепечатки
5 последних уроков рубрики «jQuery»
Анимация набора текста на jQuery
Сегодня мы бы хотели вам рассказать о библиотеке TypeIt — бесплатном jQuery плагине. С её помощью можно имитировать набор текста. Если всё настроить правильно, то можно добиться очень реалистичного эффекта.
Временная шкала на jQuery
jQuery плагин для создания временной шкалы.
Заметка: Перезагрузка и редирект на JavaScript
Быстрая заметка, где вы сможете найти парочку JS сниппетов для перезагрузки и перенаправления пользователей через JavaScript.
Рисуем диаграмму Ганта
jQuery плагин для создания диаграммы Ганта.
AJAX и PHP: загрузка файла
Пример того как осуществить загрузку файла через PHP и jQuery ajax.
Как сделать живой поиск на сайте, с помощью JavaScript, AJAX и PHP
На сегодняшний день каждый сайт имеет встроенную функцию поиска. И в этой статье, я хочу Вам показать один вариант реализации живого поиска.
Живой поиск, означает что по мере того, как пользователь будет вводить данные в поле поиска, автоматически, предлагаемые варианты поиска будут обновляться.
Эти рекомендации появляются в режиме реального времени из подключенной базы. Таким образом, как только пользователь начинает вводить запрос, варианты поиска обновляются в зависимости от введенных данных.
Пример живого поиска на сайте google:
Необходимые инструменты и знания:
Добавление домена в OpenServer
И так, для начала, нам необходимо создать папку для нашего сайта.
Для этого открываем папку ‘domains’, которая расположена внутри папки сервера OpenServer. И создаем там папку с названием ‘live-search.local’.
После этого, открываем настройки Open Server.
Переходим во вкладку ‘Домены’, указываем папку домена и добавляем домен.
Создание и настройка базы данных
Для того чтобы перейти к создании базы данных, запускаем сервер и открываем СУБД PHPMyAdmin.
Нажимаем на ссылку ‘New’.
Указываем название базы ‘live_search’ и выбираем кодировку ‘utf8mb4_unicode_ci’.
Далее, создаем таблицу ‘users’, со столбцами ‘id’ и ‘name’ и наполняем ее данными.
Для этого, в PhpMyAdmin, переходим на вкладке SQL и запускам следующий запрос:
И видим, что данные добавились.
Создание необходимых файлов
Создайте следующие файлы в папке ‘live-search.local’.
style.css – Файл для стилей
Создание живого поиска
Теперь переходим непосредственно к созданию функционала живого поиска.
Открываем файл с именем ‘index.php’ и вставляем в него следующий код:
Теперь, настроим подключение к базе данных. Для открываем файл ‘db.php’ и вставляем в него следующий код:
Далее, открываем файл ‘handler.php’ и вставляем в него следующий код:
Открываем файл с именем ‘script.js’ и вставляем в него следующий код:
Открываем файл стилей ‘style.css’, и вставляем в него следующий код:
Готово! Функционал ‘живой поиск’ готов к тестированию.
Открываем сайт в браузере, по адресу live-search.local/
Теперь в текстовое поле, вводим какое-то имя из примера. Или можно ввести только некоторую комбинацию букв из имени. Например, поищем ‘Андрея’. Вводим в поиск ‘ан’.
Как видим, в результатах поиска, по запросу ‘ан’ у нас отображаются, имена, которые содержат эту комбинацию букв.
Теперь разберемся как работает наш живой поиск. Значит при вводе запроса, значение поля поиска, считывается скриптом из файла ‘script.js’.
В данном файле, используя технологию ‘ajax’, это значение передается на сервере. Обработчиком на стороне сервера является файл ‘handler.php’.
В файле ‘handler.php’, по введенному запросу, производится поиск в таблице ‘users’ из базы данных.
Здесь же, формируется список с результатами поискового запроса и возвращается обратно в файле ‘script.js’, в функцию ‘success’.
Результат с сервера, находится внутри параметра ‘response’.
Используя метод html(), мы добавляем этот результат в блоке div с потом, используя метод show(), мы отображаем этот div, на странице.
И еще, если мы теперь кликнем на результат поиска, то, срабатывает функция fill() из файла ‘script.js’, которая берет результат по которому кликнули и добавляет его в поле поиска. В тоже время, она скрывает результаты поиска.
Вот и все. Поле для поиска в режиме реального времени готова.
Видео: 15 Способов Поиска в Google, о Которых не Знают 96 % Людей
Похожие статьи:
Понравилась статья?
Тогда поделитесь ею с друзьями и подпишитесь на новые интересные статьи.
Поделиться с друзьями:
Подписаться на новые статьи:
Поддержите пожалуйста мой проект!
Если у Вас есть какие-то вопросы или предложения, то можете писать их в комментариях или мне на почту sergiu1607@gmail.com. И если Вы заметили какую-то ошибку в статье, то прошу Вас, сообщите мне об этом, и в ближайшее время я всё исправлю.
Автор статьи: Мунтян Сергей
Поиск по контенту сайта php примеры
В самом начале давайте разберемся, где будем искать. Будем искать не только в файлах, но и сделаем поиск по базе данных.
Поиск по сайту php
Алгоритм поиска по сайту
$new = my_strtolower( @file_get_contents(путь до файла)); //получаем файл в строку.
И далее в цикле проверить все файлы или строки в базе на совпадение!
Все просто!
Для данного примера есть архив со скриптом.
Я уже давно не занимался базами данных, поэтому, никак проверить не смогу работоспособность данного скрипта!
НО! Схематично могу набросать, как бы я делал поиск по базе данных сайта.
Берем скрипт вывода из базы данных
Все что внутри цикла while удаляем и туда вставляем:
Ниже скрипта располагаем форму для отправки запроса на поиск оп базе данных:
В самом верху страницы располагаем функцию собственную функцию strtolowermy_strtolower
Следующей строкой получаем данные из формы :
Пропускам данные через my_strtolower:
Скачать скрипт поиска по базе данных
Скачать со страницы скриптов
Если мы говорим о поиске по контенту на сайте, который сделан на файлах, то первое с чем мы сталкиваемся, против базы данных, как получить все ссылки на все файлы!?
+ все буквы приведем к нижнему регистру my_strtolower
Далее собственно поиск искомого слова в контенте substr_count
+ если что-то найдено, то создаем счетчик +1($line_count)
Далее особо ничего интересного. форма + вывод полученных данных.
Сообщение системы комментирования :
Форма пока доступна только админу. скоро все заработает. надеюсь.