Php поиск на сайте: Как сделать поиск по сайту с помощью PHP и MySQL?

Содержание

Скрипт поиска по сайту на основе Яндекс.XML.

Скачать скрипт поиска по сайту на основе Яндекс.XML (28.11.2010):
Версия 0.6 (windows-1251)
Версия 0.6 (utf-8)

Назначение:

Организация на сайте поиска основанного на функциональных возможностях предоставляемых сервисом Яндекс.XML.

Пример реализации поиска по сайту, организованного на базе данного скрипта.

Возможности:

  1. На официальной странице реализации XML-поиска приведен рабочий пример PHP-скрипта. Главной отличительной особенностью нашего варианта является использование асинхронных запросов - XMLHttpRequest - иначе известных, как технология Ajax. То есть, при выполнении поиска и выводе данных не производится перезагрузка страницы. Ответ полученный от Яндекс.XML подгружается в фоне и моментально выводится, что позволяет сделать поиск максимально быстрым и удобным пользователю.
  2. Существует возможность добавления поля поиска на любую страницу сайта. При вводе запроса в таком поле производится перевод на основную страницу поиска и вывод искомых результатов. Таким образом можно создать, так называемое, сквозное поле поиска на всех страницах вашего сайта.
  3. Поиск по сайту реализованный на базе Яндекс.XML, работает по всем страницам находящимся в индексе Яндекса.

Требования:

Для добавления на ваш сайт данного скрипта необходимо соблюсти условия оговоренные в лицензии бесплатного сервиса Яндекс.XML. Ниже перечислены основные пункты:

  1. Сервер должен иметь выделенный IP, который необходимо зарегистрировать на странице Яндекс.XML. При необходимости, свяжитесь с хостером, услуга получения выделенного IP, может быть платной. Впрочем, как правило, плата очень небольшая.
  2. Ограничение на максимальное число запросов с сайта в сутки - не более 1000. Этого числа, в большинстве случаев, более чем достаточно. Для сайтов подключенных к Рекламной Сети Яндекса ограничение по количеству запросов не применяется, но необходимо установить код статистики указанный в 7 параграфе лицензии сервиса Яндекс.XML.
  3. На странице отображения результатов поиска должна стоять ссылка на Яндекс.XML.

Если вышеназванные условия не вызвали у вас проблем, можно переходить к установке, настройке и проверке скрипта.

Установка:

Установка заключается в разархивировании и загрузке файлов в каталог search на вашем сайте. Для настройки скрипта следует открыть текстовым редактором файл config.php и внести в него следующие изменения:

  1. Впишите в переменную $aLocal["ip"] ваш выделенный IP сервера, который был зарегистрирован на Яндекс.XML.

    Пример:

    $aLocal["ip"] = "*.*.*.*";

  2. Впишите в переменную $aLocal["url"] ваш адрес для совершения запроса, который можно найти на странице настроек.

    Пример:

    $aLocal["url"] = "http://xmlsearch.yandex.ru/xmlsearch?user=name&key=********";

  3. Впишите в переменную $aLocal["host"] домен или поддомен вашего сайта.

    Пример для домена:

    $aLocal["host"] = "php-myadmin.ru";

    Пример для поддомена:

    $aLocal["host"] = "forum.php-myadmin.ru";

  4. Для проверки наличия в PHP обязательных расширений, а также корректности конфигурационных директив, запустите скрипт (search/test.php).

Если при запуске search/test.php вы не видите никаких ошибок, а только поле поиска, попробуйте воспользоваться им и поискать что-нибудь на сайте.

Теперь у вас есть рабочий, но голый шаблон страницы поиска, который следует встроить в страницу сайта. Процедура встраивания крайне индивидуальна, но ниже будут перечислены все обязательные условия необходимые для работы скрипта исходя из которых вы сможете впоследствии создать собственную страницу поиска.

Добавление на сайт:

  1. Для добавления формы поиска на страницу вашего сайта воспользуйтесь примером в файле (search/index.php).
    1. Обратите внимание на php код, который отвечает за передачу запросов с других страниц сайта:

      <?php

      $sSearch_text = (isset($_REQUEST["find"]) && strlen($_REQUEST["find"]) > 2)

      ? htmlspecialchars($_REQUEST["find"]) : "";

      ?>

    2. Обязательными являются строки подключения файла каскадых стилей (search/search.css) и JavaScript (search/search.js).

      <link href="search.css" rel="stylesheet" type="text/css" />
      <script type="text/javascript" src="search.js"></script>

    3. И наконец, блок HTML кода внутри комментариев: "Поиск. Начало." и "Поиск. Конец."

  2. Для добавления поля поиска на любых других страницах вашего сайта, воспользуйтесь примером формы из файла (search/test.php). Здесь обязательным является только HTML код внутри комментариев "Вставка поля поиска. Начало." и "Вставка поля поиска. Конец."
  3. Оформление цвета, размера шрифта и т. д. осуществляется редактированием стилей в файле (search/search.css). Смотрите комментарии в нем.

После завершения всех подготовительных работ, удалите файлы search/test.php и search/readme.txt.

- Обсуждение скрипта на форуме

Готовый поиск для сайта - Знай свой компьютер

Выставляю для ознакомления три варианта скрипта поиск по сайту на java, php и xml, любой из которых можно смело применить для любых ваших сайтов.

Во всех вариантах скрипта поиска по сайту html отсутствует кнопка "Найти" и исключается перезагрузка страниц, где вывод результатов поиска происходит посредством ajax сразу на глазах посетителей.

У каждого варианта поиска есть свои плюсы и недостатки, но в одном они все одинаковы: создали статью и сразу прописали сами результаты для поиска, потому как функционал скрипта построен на поиске из записанного, а не на поиске информации по всему вашему сайту.

И давайте рассмотрим все примеры подробно с пошаговыми действиями для установки каждого из них на сайт.

Первый вариант поиска по сайту с БД.

Этим вариантом поиска на сайте я успешно пользовался сам. Обработчик php запросов для поиска не очень сложный, где я не имея навыков программирования смог без особого труда внедрить картинки к выводу результатов в поиске.

Ещё одним плюсом является подсветка найденных слов (букв) в результате поиска.

Недостатком является один факт – если прописывать в таблице БД адрес страницы из другой категории, то есть к примеру вот так: cat/page.html то при переходе по этому адресу из результатов поиска браузер выдаёт ошибку. А связано это с тем, что обработчик экранирует подобные символы, то есть превращает в html сущности.

Вы поймёте о чём речь, когда установите этот скрипт поиска и начнёте его опробовать в работе.

Первый вариант скрипта поиска взаимодействует с Базой данных и давайте сразу приступим к её заполнению.

Скачайте ниже архив со скриптом поиска для сайта и залейте всё содержимое на хостинг.
Далее создайте БД с именем poisk_test и сравнение utf8_general_ci . После нажмите на созданную базу и в верхнем меню кликните кнопку SQL и в появившееся окно вставьте скопированный код из файла BD.sql и затем нажмите ОК .

Всё, готово! Открывайте ваш сайт в браузере и проверяйте работу скрипта поиска по сайту, а уже после замените всё необходимое в таблице MySQL на своё.

Скачать скрипт поиска по сайту 1-ый вариант

Второй вариант поиска по сайту с БД.

Во втором примере скрипт поиска работает так же от БД, как и в первом варианте, только здесь отсутствует подсветка в выдаче результатов.

И к недостаткам можно отнести то, что при поиске на латинице, скрипт ищет совпадения в адресе ссылки, потому как в этом примере адресные ссылки полностью прописываются в БД.

Для установки этого скрипта поиска по сайту сделайте такие же действия, как и в предыдущем примере, только файл search.php трогать уже не нужно.

Скачать скрипт поиска по сайту 2-ой вариант

Третий вариант поиска по сайту на xml без БД.

Отличительной особенностью последнего примера поиска для сайта является тот факт, что он не использует Базу Данных, а работает по сайту на основе xml , в котором и прописываются все запросы для поиска на вашем сайте.

Для его установки достаточно залить все файлы скрипта на сервер, поменять в том же файле links.xml на ваши поисковые запросы и поиск на сайте сразу будет функционировать в полном объёме.

Скачать скрипт поиска по сайту 3-ий вариант

2012-11-09 / Вр:21:48 / просмотров: 54671

Здравствуйте дорогие читатели моего блога. Сегодня у меня было вдохновение написать хороший пост, но я не знал о чем именно писать. Хочется писать посты о том, что вас сильно бы интересовало. Отсылайте мне письма через форму обратной связи, предлагайте темы, которые вы хотели бы видеть на моем блоге. Буду рад с вами держать связь через e-mail. Спасибо.
Сегодня с вами хочу поделиться красивыми формами поиска для сайта или блога. Но знайте, это просто форма поиска, без обработчика. Вы должны понимать, что любая форма без обработчика работать не будет, другими словами сказать, не будет выдавать задаваемый результат. Наверное я вас запутал?! Я не специально, так просто получилось.

Простой поиск для сайта.

Это простая форма поиска, без всяческих наворотов. Само название "простой поиск для сайтов" говорит само за себя.

Вставьте этот код на сайте между тег форма поиска

Поле поиска для сайта — один из важнейших элементов пользовательского интерфейса на веб-странице. С его помощью пользователь может найти нужный контент на вашем сайте.

В этом уроке вы узнаете, как создать разметку для поля поиска с помощью HTML5, а также как стилизовать элементы формы, используя возможности CSS3, без использования скриптов.

Как сделать поиск по сайту на php и html

Трудно сейчас представить сайт без функции внутреннего поиска. Она жизненно необходима не только на коммерческих ресурсах, но и на личных блогах. Рассмотрим несколько простых вариантов создания поиска по сайту.

 Обратимся к готовым формам

Как сделать поиск по сайту быстро и без особых усилий? Этот вопрос часто задают себе владельцы сайтов, не знающие язык html настолько глубоко, чтобы написать скрипт поиска самостоятельно. Специально для них известные поисковые системы предусмотрели простую установку стандартизированных поисковых форм. Имеются в виду функции внутреннего поиска от Яндекс и Гугл. Давайте рассмотрим, как их установить.

Для инсталлирования поиска от Яндекс необходимо зайти на «Яндекс-сайт» и кликнуть на ссылку «Установить поиск» в шапке страницы.

Зарегистрировавшись (если еще нет аккаунта в Яндексе) или введя логин и пароль, пользователь попадает на страницу пошаговой установки поиска по сайту.

В поле «Название поиска» нужно будет объяснить предназначение установки формы. Особой роли это не играет, и на процесс поиска не повлияет, но система сделала заполнение этого поля обязательной процедурой. Кликнув на ссылку «Добавить сайты», следует внести адрес своего ресурса. Кроме того, система попросит пользователя ввести  электронный адрес. На него будут приходить сервисные сообщения от Яндекс, статистика и прочая информация. Если в этом поле указать почтовый ящик, созданный не в Yandex, на него придет ссылка для подтверждения работоспособности.

Второй этап — определение внешнего вида поискового модуля.

Ничего сложного в этом нет — нужно определиться с размером и цветом формы, чтобы она нормально вписалась в интерьер сайта. Примеры поисковых форм согласно внесенных пользователем настроек будут демонстрироваться в нижней части диалогового окна. Таким образом, можно будет подобрать оптимальный вариант.

На третьем этапе пользователю необходимо настроить отображение результатов поиска.

После внесения необходимых настроек пользователю будет предложено проверить работу поиска.

Для этого нужно ввести в поисковую строку любой запрос и нажать «Найти». После этого загрузится страница с результатами поиска. Если появились вопросы — пользователь сможет вернуться назад и изменить настройки. Если все удовлетворило — можно переходить на последний этап установки.

Система предложит пользователю скопировать код собственного поискового модуля и вставить его исходный код сайта. На этом установка заканчивается.

Установить поисковую форму от Google еще проще. Но для этого обязательно необходимо зарегистрировать собственный аккаунт в этой системе.

После регистрации пользователю откроется вход в систему пользовательского поиска. Все, что нужно для начала — нажать кнопку «Создать» в правой части страницы.

Открывшееся первое диалоговое окно предложит внести настройки имени и описания поиска, определить сайт для организации внутреннего поиска. Кроме того, пользователю будет предложено выбрать поисковую версию — бесплатную стандартную, либо же платную.

Те, кто заходят получать дополнительный доход, должны учесть, что пользователи их сайтов при выводе результатов поискового запроса сначала увидят рекламные ссылки от Google и лишь ниже — результаты поиска по сайту.

На следующем этапе установки нужно выбрать дизайн поисковой формы на основе стиля сайта пользователя. В нижней части диалогового окна доступен предпросмотр настроенного модуля.

Вот, собственно, и все — на финальном этапе нужно скопировать готовый код и установить его в исходники сайта.

Если дизайн сайта изменится, всегда можно изменить внешний вид поискового модуля — все внесенные настройки хранятся на личной странице пользователя.

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

Сайт Поиск.ру предлагает установить поиск по сайту на html, используя около десятка готовых форм. Все, что нужно пользователю — скопировать код, изменить в нем настройки (вписать адрес собственного сайта) и установить модуль на необходимую страницу.

Тестирование скрипта на локальном сервере

Можно организовать поиск по сайту на php, установив собственный скрипт. Обязательным условием при этом является поддержка языка php сервером хостинга, на котором находится сайт пользователя.

В качестве примера используем бесплатный скрипт «Поиск по сайту 1.1».

Архив скрипта search.zip нужно скачать и распаковать. После распаковки файлы скрипта будут выглядеть таким образом:

В папке search находятся файлы дистрибутива скрипта:

Перед установкой нелишним будет проверить работоспособность скрипта. Для этого можно попробовать установить его на локальном сервере Denwer.

В корневую папку сайта нужно скопировать файлы дистрибутива скрипта, а также файл htaccess. При установке скрипта на хостинг нужно обязательно определить атрибуты папок и файлов скрипта равными 777. В случае тестирования скрипта на локальном сервере это делать необязательно.

Определив страницу, на которой должна находится поисковая форма, нужно добавить на нее следующий код:

Обновив страницу, мы увидим следующую поисковую форму:

Все, что остается — протестировать скрипт. Если все устроит — можно устанавливать его на рабочий сайт.

цены на услуги фрилансеров для web-программирования на PHP

PHP – наиболее простой скриптовый язык программирования, который широко применяют для создания разнообразных генерируемых web-страниц. Web-программирование на php, на сегодняшний день, используют для написании основной массы интернет-страниц, многообразие которых на просторах рунета впечатляет.

 

Подбираем профессионального программиста-фрилансера

У многих возникает потребность в разработке собственного интернет-продукта, но большинство далеки от программирования. Более того, мы даже не представляем насколько это сложно.

Кроме офисных и домашний ПК, которые нуждаются в постоянной разработке программного обеспечения, существует еще множество других девайсов. С постоянным ростом разнообразия компьютерной техники расширяется сфера ее применения и индустрия программирования. Это значит, что профессия программиста становится все более востребованной. Например, для разработки веб-сайтов потребуется php-программист фрилансер, владеющий не одним лишь языком программирования.

Программист-фрилансер для работы на php должен владеть многими навыками, в том числе:

  • Быть способным правильно ставить задачи и уметь оперативно их решать;
  • Иметь хорошо развитое логическое мышление;
  • Уметь быстро и качественно создавать проект и разрабатывать по нему продукт.

Одним из этапов, который проходит web-программист на php разрабатывая проект написания программного кода, станет его тестирование, проверка и отладка. Не менее важным будет то, что фрилансер на php сможет посодействовать в поддержке готового продукта, его совершенствовании и развитии, получении обратной связи от пользователей сети.

 

Особенности программирования на php

Популярность услуги программирования на php обусловлена простотой данного языка. С его помощью php программист-фрилансер сможет разработать как небольшой сайт, так и крупный интернет-портал любой сложности.

Как работают сайты, написанные на php:

  1. Пользователь совершает некое действие на сайте. Например, хочет перейти на следующую станицу кликом по ссылке «меню»;
  2. Браузер отправляет запрос на сервер для установления соединения с соответствующей страницей, которую создал web-программист на php;
  3. Далее, php-код, на котором была написана страница, интерпретируется и генерируется в html;
  4. Страница возвращается на сервер, который передает ее обратно браузеру;
  5. В результате пользователь видит новое отображение страницы.

 

Где найти программиста-фрилансера PHP по лучшей цене?

Найти профессионального программиста-фрилансера вы сможете, обратившись на YouDo – известную биржу поиска профессиональных исполнителей любых, самых разнообразных задач.

Цены на услуги за работу программиста-фрилансера на php как правило рассчитываются исходя из потраченного им временем на разработку продукта. Оформляя заказ специалиста на youdo.com поинтересуйтесь вопросом цены, выбрав для себя наиболее оптимальную.

 

Настройка проекта PHP

Настройка выполнения представляет собой сохраненные параметры выполнения проекта PHP. Можно определить несколько настроек для одного проекта и переключаться между ними. Например, если приложение разработано локально и подлежит выгрузке на удаленный производственный сервер, достаточно выбрать другую настройку выполнения. Настройки выполнения применимы как по отношению к выполнению проекта, так и по отношению к отладке. Настройки выполнения соответствуют следующим широко используемым случаям.

  • Разработка веб-страниц PHP на локальном компьютере с локальным веб-сервером.

  • Выполнение сценариев PHP при помощи локального механизма PHP. Этот подход применяется к тем файлам PHP, которые не предназначены для вывода HTML. Поэтому такие сценарии могут запускаться без браузера.

  • Удаленная разработка. Исходный код PHP и другие файлы приложений выгружаются на удаленный веб-сервер по протоколу FTP. Этот вариант использования является обычным для случаев совместного применения результатов разработки многими пользователями.

  • Сочетание вышеупомянутых вариантов использования: приложение разрабатывается локально, а после выполнения развертывается на удаленном производственном сервере. При необходимости сценарии PHP выполняются в течение разработки.

При создании нового проекта PHP создается настройка выполнения проекта по умолчанию. Для выбора настройки выполнения по умолчанию для проекта выберите соответствующий пункт из раскрывающегося списка "Run As" на панели "Run Configuration". Доступны следующие параметры:

Процесс создания дополнительных настроек выполнения или изменения настроек выполнения по умолчанию описан в разделе Пользовательская настройка проекта: Настройка выполнения. Он практически идентичен процессу создания настройки выполнения по умолчанию, за исключением использования диалогового окна "Properties" для существующего проекта вместо мастера создания проекта.

Локальный веб-сайт

Настройка локального веб-сайта включает в себя копию папок источников PHP веб-папке веб-сервера Apache, установленного на используемом компьютере. Проект часто может иметь настройку как локального, так и удаленного веб-сервера. Обратите внимание, что процедура настройки выполнения на локальном веб-сайте несколько различается в зависимости от того, создается ли проект из существующих исходных кодов или без их использования.

Настройка локального веб-сайта.

  1. В раскрывающемся списке "Run As" ("Выполнить как") выберите "Local Web Site" ("Локальный веб-сайт").

  2. В поле "Project URL" ("URL-адрес проекта") проверьте автоматически предложенный URL-адрес. Убедитесь, что сервер HTTP Apache прослушивает порт 80 по умолчанию. Если это не так, явным образом укажите номер порта в формате localhost:<номер порта> .

  1. При создании проекта из существующих исходных кодов можно выбрать файл исходного кода для использования в качестве файла индекса.

  2. Для хранения исходных файлов проекта в другом каталоге, отличном от проекта IDE NetBeans выберите "Копировать файлы из папки исходных файлов в другое местоположение". При создании проекта из существующих исходных кодов данное действие является обязательным, кроме случаев, когда существующие исходные коды уже находились в папке "web" сервера Apache. В этом поле по умолчанию указан следующий путь: <Document Root>\<New PHP Project> . Используйте кнопку "Browse" ("Обзор") для указания другого пути при необходимости. Корень документов – это папка, в которой веб-сервер ищет файлы для открытия в браузере. Корневой узел документов указан в файле настройки веб-сервера. Мастер обнаруживает тип установки Apache либо как отдельного компонента, либо в составе пакета и предлагает путь к папке по умолчанию htdocs (папка для текущего типа установки). Поэтому при принятии параметров по умолчанию в течение настройки сервера Apache или пакета AMP следует выбрать соответствующий путь в раскрывающемся списке.

  3. Нажмите кнопку 'Готово'. Среда IDE создает проект PHP.

Удаленный веб-сайт

Сценарий

  1. В раскрывающемся списке "Run As" выберите "Script".

  1. Чтобы указать местоположение механизма PHP, нажмите кнопку "Configure" рядом с окном "Use Default PHP Interpreter". На вкладке "General" откроется диалоговое окно "PHP Options".

  1. В поле "PHP 5 Interpreter" укажите путь к файлу php.exe . При необходимости используйте кнопку "Browse" или кнопку "Search…​".

  2. Для указания формы отображения результатов выполнения сценария установите соответствующий флажок в области "Open Result In". Доступны следующие параметры:

    • Окно 'Результаты'. Результаты выполнения сценария будут отображены в окне выходных данных в нижней части окна IDE NetBeans.

    • Веб-браузер. Откроется окно браузера по умолчанию с результатами выполнения сценария в форме файла HTML.

    • Редактор. Результаты выполнения сценария отобразятся в виде файла HTML в окне редактора IDE.

  3. Нажмите кнопку "ОК". Диалоговое окно "Options" закроется, и будет выполнен возврат к панели "Run Configuration".

  4. Добавьте любые аргументы, например debug=true и любые необязательные параметры командной строки PHP.

Настройки Битрикс в файле "dbconn.php" и "settings.php"

Битрикс - это довольно возрастная система, первая коммерческая версия которой вышла в 2003 году. Со временем Битрикс быстро менялся, появлялись новые функции и способы программирования. Поэтому появилась такая ситуация, при которой в битриксе оказалось несколько конфигурационных файлов. Из-за желания поддержки обратной совместимости, разработчики пока не удаляют старый способ хранения настроек. Один из них "dbconn.php", а второй "settings.php". В этих файлах записывается данные для входа в базу и другие настройки сайта. Разберём их отдельно.

Файл "dbconn.php"

Это старый файл конфигурации. его можно найти по адресу /bitrix/php_interface/dbconn.php. Приблизительное содержание файла:
<?php 
$DBType = "mysql";
$DBHost = "localhost";
$DBLogin = "user_name";
$DBPassword = "pass";
$DBName = "db_name";
...
Как можно догадаться из названий переменных, эти переменные содержат параметры доступа к базе данных:
  • $DBType - тип базы данных. Если сайт находится на виртуальном хостинге, то скорее всего это MySQL.
  • $DBHost - хост, оно же ip адрес сервера, на котором находится база данных.
  • $DBLogin - логин к базе данных.
  • $DBPassword - пароль к базе данных.
  • $DBName - имя базы данных.

"Хост" - это ip адрес сервера, на котором работает база данных. Если база данных работает на том же сервере, что и сайт, то вместо ip адреса можно написать слово localhost (или ip адрес 127.0.0.1, что по сути одно и то же).

Все эти настройки можно спросить у техподдержки хостинга после заказа услуги. Мы всегда поможем настроить сайт, поэтому не стесняйтесь писать в техподдержку!

Файл "settings.php"

Это новый файл конфигурации Битрикса. Файл можно найти по адресу /bitrix/.settings.php. В содержании этого файла представляет из себя ассоциативный массив с настройками. В котором можно найти ключ 'connections'. В массиве под этим ключом содержатся настройки подключения к базе данных:
<?php 
...
'connections' =>
   array (
      'value' =>
      array (
         'default' =>
         array (
            'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',
            'host' => 'localhost',
            'database' => 'db_name',
            'login' => 'user_name',
            'password' => 'pass',
         ),
      ),
   'readonly' => true,
)
...
Как можно догадаться из названий ключей массива, эти переменные содержат параметры доступа к базе данных:
  • className - имя класса, с помощью которого происходит работа с конкретным типом базы данных. Обратите внимание, что при установленном на сервере расширении mysqli можно указать "MysqliConnection". Тогда будет использоваться расширение mysqli.
  • host - хост, оно же ip адрес сервера, на котором находится база данных.
  • login - логин к базе данных.
  • password - пароль к базе данных.
  • database - имя базы данных.

Значения параметров подключения к базе в файлах "dbconn.php" и "settings.php" должны совпадать, иначе система будет вести себя непредсказуемо. Поэтому при переносе сайта с одного хостинга на другой стоит убедиться, что в обоих файлах указаны верные доступы к базе данных.

Этический кодекс психолога

Преамбула
  1. Этический кодекс психолога Российского психологического общества составлен в соответствии с Конституцией Российской Федерации, Федеральным законом Российской Федерации № 152-ФЗ от 27 июля 2006 года «О персональных данных», Уставом Российского психологического общества, Всеобщей декларацией прав человека, Хельсинкской декларацией Всемирной медицинской ассоциации «Этические принципы проведения медицинских исследований с участием людей в качестве субъектов исследования», международной Универсальной декларацией этических принципов для психологов, Этическим метакодексом Европейской федерации психологических ассоциаций.
  2. Консультативным и регулирующим органом Российского психологического общества по вопросам профессиональной этики психолога является Этический комитет Российского психологического общества.
  3. В настоящем Этическом кодексе термин «Психолог» относится к лицу, имеющему высшее психологическое образование.
  4. В настоящем Этическом кодексе термин «Клиент» относится к лицу, группе лиц или организации, которые согласились быть объектом психологических исследований в личных, научных, производственных или социальных интересах или лично обратились к Психологу за психологической помощью.
  5. Действие данного Этического кодекса распространяется на все виды деятельности психологов, определенные настоящим Этическим кодексом. Действие данного Этического кодекса распространяется на все формы работы Психолога, в том числе осуществляемые дистанционно или посредством сети Интернет.
  6. Профессиональная деятельность психолога характеризуется его особой ответственностью перед клиентами, обществом и психологической наукой, и основана на доверии общества, которое может быть достигнуто только при соблюдении этических принципов профессиональной деятельности и поведения, содержащихся в настоящем Этическом кодексе.
  7. Этический кодекс психологов служит: для внутренней регуляции деятельности сообщества психологов; для регуляции отношений психологов с обществом; основой применения санкций при нарушении этических принципов профессиональной деятельности.

I. Этические принципы психолога

Этика работы психолога основывается на общечеловеческих моральных и нравственных ценностях. Идеалы свободного и всестороннего развития личности и ее уважения, сближения людей, создания справедливого, гуманного, процветающего общества являются определяющими для деятельности психолога. Этические принципы и правила работы психолога формулируют условия, при которых сохраняются и упрочиваются его профессионализм, гуманность его действий, уважение людей, с которыми он работает, и при которых усилия психолога приносят реальную пользу.

  1. Принцип уважения
    Психолог исходит из уважения личного достоинства, прав и свобод человека, провозглашенных и гарантированных Конституцией Российской Федерации и международными документами о правах человека.
    Принцип уважения включает:
    1. Уважение достоинства, прав и свобод личности
      1. Психолог с равным уважением относится к людям вне зависимости от их возраста, пола, сексуальной ориентации, национальности, принадлежности к определенной культуре, этносу и расе, вероисповедания, языка, социально-экономического статуса, физических возможностей и других оснований.
      2.  Беспристрастность Психолога не допускает предвзятого отношения к Клиенту. Все действия Психолога относительно Клиента должны основываться на данных, полученных научными методами. Субъективное впечатление, которое возникает у Психолога при общении с Клиентом, а также социальное положение Клиента не должны оказывать никакого влияния на выводы и действия Психолога.
      3. Психолог избегает деятельности, которая может привести к дискриминации Клиента по любым основаниям.
      4. Психологу следует так организовать свою работу, чтобы ни ее процесс, ни ее результаты не наносили вреда здоровью и социальному положению Клиента и связанных с ним лиц.
    2. Конфиденциальность
      1. Информация, полученная Психологом в процессе работы с Клиентом на основе доверительных отношений, не подлежит намеренному или случайному разглашению вне согласованных условий.
      2. Результаты исследования должны быть представлены таким образом, чтобы они не могли скомпрометировать Клиента, Психолога или психологическую науку.
      3. Психодиагностические данные студентов, полученные при их обучении, должны рассматриваться конфиденциально. Сведения о Клиентах также должны рассматриваться конфиденциально.
      4. Демонстрируя конкретные случаи своей работы, Психолог должен обеспечить защиту достоинства и благополучия Клиента.
      5. Психолог не должен отыскивать о Клиенте информацию, которая выходит за рамки профессиональных задач Психолога.
      6. Клиент имеет право на консультацию Психолога или работу с ним без присутствия третьих лиц.
      7. Неконтролируемое хранение данных, полученных при исследованиях, может нанести вред Клиенту, Психологу и обществу в целом. Порядок обращения с полученными в исследованиях данными и порядок их хранения должны быть жестко регламентированы.
    3. Осведомленность и добровольное согласие Клиента
      1. Клиент должен быть извещен о цели работы, о применяемых методах и способах использования полученной информации. Работа с Клиентом допускается только после того, как Клиент дал информированное согласие в ней участвовать. В случае, если Клиент не в состоянии сам принимать решение о своем участии в работе, такое решение должно быть принято его законными представителями.
      2. Психолог должен сообщать Клиенту обо всех основных шагах или лечебных действиях. В случае стационарного лечения Психолог должен информировать Клиента о возможных рисках и об альтернативных методах лечения, включая непсихологические.
      3. Видео- или аудиозаписи консультации или лечения Психолог может делать только после того, как получит согласие на это со стороны Клиента. Это положение распространяется и на телефонные переговоры. Ознакомление третьих лиц с видео-, аудиозаписями консультации и телефонными переговорами Психолог может разрешить только после получения согласия на это со стороны Клиента.
      4. Участие в психологических экспериментах и исследованиях должно быть добровольным. Клиент должен быть проинформирован в понятной для него форме о целях, особенностях исследования и возможном риске, дискомфорте или нежелательных последствиях, чтобы он мог самостоятельно принять решение о сотрудничестве с Психологом. Психолог обязан предварительно удостовериться в том, что достоинство и личность Клиента не пострадают. Психолог должен принять все необходимые предосторожности для обеспечения безопасности и благополучия Клиента и сведения к минимуму возможности непредвиденного риска.
      5. В тех случаях, когда предварительное исчерпывающее раскрытие информации противоречит задачам проводимого исследования, Психолог должен принять специальные меры предосторожности для обеспечения благополучия испытуемых. В тех случаях, когда это возможно, и при условии, что сообщаемая информация не нанесет вреда Клиенту, все разъяснения должны быть сделаны после окончания эксперимента.
    4. Самоопределение Клиента
      1. Психолог признает право Клиента на сохранение максимальной автономии и самоопределения, включая общее право вступать в профессиональные отношения с психологом и прекращать их.
      2. Клиентом может быть любой человек в случае своей несомненной дееспособности по возрасту, состоянию здоровья, умственному развитию, физической независимости. В случае недостаточной дееспособности человека решение о его сотрудничестве с Психологом принимает лицо, представляющее интересы этого человека по закону.
      3. Психолог не должен препятствовать желанию Клиента привлечь для консультации другого психолога (в тех случаях, когда к этому нет юридических противопоказаний).
  2. Принцип компетентности
    Психолог должен стремиться обеспечивать и поддерживать высокий уровень компетентности в своей работе, а также признавать границы своей компетентности и своего опыта. Психолог должен предоставлять только те услуги и использовать только те методы, которым обучался и в которых имеет опыт.
    Принцип компетентности включает:
    1. Знание профессиональной этики
      1. Психолог должен обладать исчерпывающими знаниями в области профессиональной этики и обязан знать положения настоящего Этического кодекса. В своей работе Психолог должен руководствоваться этическими принципами.
      2. Если персонал или студенты выступают в качестве экспериментаторов в проведении психодиагностических процедур, Психолог должен обеспечить, независимо от их собственной ответственности, соответствие совершаемых ими действий профессиональным требованиям.
      3. Психолог несет ответственность за соответствие профессионального уровня персонала, которым он руководит, требованиям выполняемой работы и настоящего Этического кодекса.
      4. В своих рабочих контактах с представителями других профессий Психолог должен проявлять лояльность, терпимость и готовность помочь.
    2. Ограничения профессиональной компетентности
      1. Психолог обязан осуществлять практическую деятельность в рамках собственной компетентности, основанной на полученном образовании и опыте.
      2. Только Психолог осуществляет непосредственную (анкетирование, интервьюирование, тестирование, электрофизиологическое исследование, психотерапия, тренинг и др.) или опосредованную (биографический метод, метод наблюдения, изучение продуктов деятельности Клиента и др.) работу с Клиентом.
      3. Психолог должен владеть методами психодиагностической беседы, наблюдения, психолого-педагогического воздействия на уровне, достаточном, чтобы поддерживать у Клиента чувство симпатии, доверия и удовлетворения от общения с Психологом.
      4. Если Клиент болен, то работа с ним допустима только с разрешения врача или согласия других лиц, представляющих интересы Клиента.
    3. Ограничения применяемых средств
      1. Психолог может применять методики, которые адекватны целям проводимого исследования, возрасту, полу, образованию, состоянию Клиента, условиям эксперимента. Психодиагностические методики, кроме этого, обязательно должны быть стандартизованными, нормализованными, надежными, валидными и адаптированными к контингенту испытуемых.
      2. Психолог должен применять методы обработки и интерпретации данных, получившие научное признание. Выбор методов не должен определяться научными пристрастиями Психолога, его общественными увлечениями, личными симпатиями к Клиентам определенного типа, социального положения или профессиональной деятельности.
      3. Психологу запрещается представлять в результатах исследования намеренно искаженные первичные данные, заведомо ложную и некорректную информацию. В случае обнаружения Психологом существенной ошибки в своем исследовании после того, как исследование было опубликовано, он должен предпринять все возможные действия по исправлению ошибки и дальнейшему опубликованию исправлений.
    4. Профессиональное развитие
      1. Психолог должен постоянно повышать уровень своей профессиональной компетентности и свою осведомленность в области этики психологической работы (исследования).
    5. Невозможность профессиональной деятельности в определенных условиях
      1. Если какие-либо обстоятельства вынуждают Психолога преждевременно прекратить работу с Клиентом и это может отрицательно сказаться на состоянии Клиента, Психолог должен обеспечить продолжение работы с Клиентом.
      2. Психолог не должен выполнять свою профессиональную деятельность в случае, когда его способности или суждения находятся под неблагоприятным воздействием.
  3. Принцип ответственности
    Психолог должен помнить  о своих профессиональных и научных обязательствах перед своими клиентами, перед профессиональным сообществом и обществом в целом. Психолог должен стремиться избегать причинения вреда, должен нести ответственность за свои действия, а также гарантировать, насколько это возможно, что его услуги не являются злоупотреблением.
    Принцип ответственности включает:
    1. Основная ответственность
      1. Решение Психолога осуществить исследовательский проект или вмешательство предполагает его ответственность за возможные научные и социальные последствия, включая воздействие на лиц, группы и организации, участвующие в исследовании или вмешательстве, а также непрямой эффект, как, например, влияние научной психологии на общественное мнение и на развитие представлений о социальных ценностях.
      2. Психолог должен осознавать специфику взаимодействия с Клиентом и вытекающую из этого ответственность. Ответственность особенно велика в случае, если в качестве испытуемых или клиентов выступают лица, страдающие от медикаментозной зависимости, или лица, ограниченные в своих действиях, а также, если программа исследования или вмешательства целенаправленно ограничивает дееспособность Клиента.
      3. Если Психолог приходит к заключению, что его действия не приведут к улучшению состояния Клиента или представляют риск для Клиента, он должен прекратить вмешательство.
    2. Ненанесение вреда
      1. Психолог применяет только такие методики исследования или вмешательства, которые не являются опасными для здоровья, состояния Клиента, не представляют Клиента в результатах исследования в ложном, искаженном свете, и не дают сведений о тех психологических свойствах и особенностях Клиента, которые не имеют отношения к конкретным и согласованным задачам психологического исследования.
    3. Решение этических дилемм
      1. Психолог должен осознавать возможность возникновения этических дилемм и нести свою персональную ответственность за их решение. Психологи консультируются по этим вопросам со своими коллегами и другими значимыми лицами, а также информируют их о принципах, отраженных в Этическом кодексе.
      2. В случае, если у Психолога в связи с его работой возникли вопросы этического характера, он должен обратиться в Этический комитет Российского психологического общества за консультацией.
  4. Принцип честности
    Психолог должен стремиться содействовать открытости науки, обучения и практики в психологии. В этой деятельности психолог должен быть честным, справедливым и уважающим своих коллег. Психологу надлежит четко представлять свои профессиональные задачи и соответствующие этим задачам функции.
    Принцип честности включает:
    1. Осознание границ личных и профессиональных возможностей
      1. Психолог должен осознавать ограниченность как своих возможностей, так и возможностей своей профессии. Это условие установления диалога между профессионалами различных специальностей. 
    2. Честность
      1. Психолог и Клиент (или сторона, инициирующая и оплачивающая психологические услуги для Клиента) до заключения соглашения оговаривают вопросы вознаграждения и иные существенные условия работы, такие как распределение прав и обязанностей между Психологом и Клиентом (или стороной, оплачивающей психологические услуги) или процедура хранения и применения результатов исследования.
        Психолог должен известить Клиента или работодателя о том, что его деятельность в первую очередь подчиняется профессиональным, а не коммерческим принципам.
        При приеме на работу Психолог должен поставить своего работодателя в известность о том, что:
        – в пределах своей компетенции он будет действовать независимо;
        – он обязан соблюдать принцип конфиденциальности: этого требует закон;
        – профессиональное руководство его работой может осуществлять только психолог;
        – для него невозможно выполнение непрофессиональных требований или требований, нарушающих данный Этический кодекс.
        При приеме Психолога на работу работодатель должен получить текст данного Этического кодекса.
      2. Публичное распространение сведений об оказываемых Психологом услугах служит целям принятия потенциальными Клиентами информированного решения о вступлении в профессиональные отношения с Психологом. Подобная реклама приемлема только в том случае, если она не содержит ложных или искаженных сведений, отражает объективную информацию о предоставляемых услугах и отвечает правилам приличия.
      3. Психологу запрещается организовывать рекламу себе или какому-либо определенному методу вмешательства или лечения. Реклама в целях конкуренции ни при каких условиях не должна обманывать потенциальных Клиентов. Психолог не должен преувеличивать эффективность своих услуг, делать заявлений о превосходстве своих профессиональных навыков и применяемых методик, а также давать гарантии результативности оказываемых услуг.
      4. Психологу не разрешается предлагать скидку или вознаграждение за направление к ним нему Клиентов или заключать соглашения с третьими лицами с этой целью.
    3. Прямота и открытость
      1. Психолог должен нести ответственность за предоставляемую им информацию и избегать ее искажения в исследовательской и практической работе.
      2. Психолог формулирует результаты исследования в терминах и понятиях, принятых в психологической науке, подтверждая свои выводы предъявлением первичных материалов исследования, их математико-статистической обработкой и положительным заключением компетентных коллег. При решении любых психологических задач проводится исследование, всегда опирающееся на предварительный анализ литературных данных по поставленному вопросу.
      3. В случае возникновения искажения информации психолог должен проинформировать об этом участников взаимодействия и заново установить степень доверия.
    4. Избегание конфликта интересов
      1. Психолог должен осознавать проблемы, которые могут возникнуть в результате двойственных отношений. Психолог должен стараться избегать отношений, которые приводят к конфликтам интересов или эксплуатации отношений с Клиентом в личных интересах.
      2. Психолог не должен использовать профессиональные отношения в личных, религиозных, политических или идеологических интересах.
      3. Психолог должен осознавать, что конфликт интересов может возникнуть после формального прекращения отношений Психолога с Клиентом. Психолог в этом случае также несет профессиональную ответственность.
      4. Психолог не должен вступать в какие бы то ни было личные отношения со своими Клиентами.
    5. Ответственность и открытость перед профессиональным сообществом
      1. Результаты психологических исследований должны быть доступны для научной общественности. Возможность неверной интерпретации должна быть предупреждена корректным, полным и недвусмысленным изложением. Данные об участниках эксперимента должны быть анонимными. Дискуссии и критика в научных кругах служат развитию науки и им не следует препятствовать.
      2. Психолог обязан уважать своих коллег и не должен необъективно критиковать их профессиональные действия.
      3. Психолог не должен своими действиями способствовать вытеснению коллеги из его сферы деятельности или лишению его работы.
      4. Если Психолог считает, что его коллега действует непрофессионально, он должен указать ему на это конфиденциально.

II. Нарушение Этического кодекса психолога

  1. Нарушение Этического кодекса психолога включает в себя игнорирование изложенных в нем положений, неверное их толкование или намеренное нарушение. Нарушение Этического кодекса может стать предметом жалобы.
  2. Жалоба на нарушение Этического кодекса психолога может быть подана в Этический комитет Российского психологического общества в письменном виде любым физическим и юридическим лицом. Рассмотрение жалоб и вынесение решений по ним осуществляется в установленном порядке Этическим комитетом Российского психологического общества.
  3. В качестве санкций, применяемых к Психологу, нарушившему Этический кодекс, могут выступать: предупреждение от имени Российского психологического общества (общественное порицание), приостановление членства в Российском психологическом обществе, сопровождающееся широким информированием общественности и потенциальных клиентов об исключении данного специалиста из действующего реестра психологов РПО. Информация о применяемых санкциях является общедоступной и передается в профессиональные психологические ассоциации других стран. 
  4. В случае серьезных нарушений Этического кодекса Российское психологическое общество может ходатайствовать о привлечении Психолога к суду.

Настоящий Этический кодекс психолога принят “14” февраля 2012 года V съездом Российского психологического общества.

Этический кодекс в формате pdf (149.8 Кб)

Для обсуждение Этического кодекса Российского психологического общества присылать комментарии на адрес [email protected]

Установка собственного поискового скрипта

Установка собственного поиска скрипт

Если ваш сайт поддерживает такие функции на стороне сервера, как CGI, PHP или ASP, у вас есть возможность установка скрипта для выполнения функции поиска для вас в доме. Просматривая приведенные ниже скрипты, обратите особое внимание на эффективность. фактор, ради вашего сервера. Как правило, коммерческие лучше настроен для работы с большими сайтами. Я перечислил несколько наиболее известных поисковых запросов скрипты движка для трех языков, перечисленных выше:

  • Скрипт внутреннего поиска Google по сайту (JavaScript, бесплатно)
    Нужен мощный скрипт внутренней поисковой системы, позволяющий посетителям искать содержимое вашего сайта? Этот скрипт использует Google для включения комплексный поиск по вашему сайту.Вырезать и вставить установку, которая работает на любых типах сайтов.

  • Sphider (PHP, бесплатно)
    Sphider - это легкий веб-паук и поисковая машина, написанная на PHP, использующий MySQL в качестве серверной базы данных. Подходит для добавления возможность поиска по сайтам малого и среднего размера (до 20 000 страниц). Он также отлично работает как инструмент для анализа сайта - поиска неработающих ссылок, сбор статистики о сайте и т. д.

  • ЦЭП (PHP, бесплатно)
    TSEP - это поисковая машина для веб-сайта для вашего веб-сайта! Вы можете поставить "Выполните поиск по этому сайту" в любом месте вашего сайта, чтобы люди могли быстро найти что они ищут.

  • Поисковая система Zoom (PHP, коммерческая $ 49-99)
    Zoom - это надежный PHP-скрипт для добавления мощной пользовательской поисковой системы на ваш веб-сайт, в интранет или на CD / DVD.

  • Perlfect Search (Perl, бесплатно)
    Интегрированный универсальный индексатор сайтов и поисковая система. Это приходит как пара отдельных скриптов. Индексатор, который автоматически сканирует и индексирует веб-сайт, а поисковая система - cgi-скрипт, обслуживающий поиск запрашивает ключевые слова по индексу и отображает страницы результатов в html, в стандартном формате, включая заголовок, описание и рейтинг релевантности для каждого совпадающего документа.

  • CGIWorld поиск по сайту (Perl, коммерческий $ 25)
    SiteSearch дает вам возможность быстро и легко с помощью защищенного паролем администрирования на основе браузера площадь. Задайте путь к каталогу, в котором вы хотите искать, установите файлы и каталоги, которые вы хотите найти, а также каталоги и файлы, которые вы не хочу обыскать. SiteSearch - отличный инструмент для среднего веб-сайта около или менее 500 страниц.

  • Жидкость Dynamics Search Engine (Perl, бесплатный и коммерческий версии)
    FDSE - это простая в установке поисковая система для локальных и удаленных сайтов. Он возвращает быстрые и точные результаты из архитектуры на основе шаблонов. Бесплатные и условно-бесплатные версии доступны с исходным кодом Perl.

  • ASP Site Search (ASP, бесплатно)
    Это приложение ASP Site Search комментирует каждую строку кода, чтобы облегчить новичку отслеживание или настройку.Поиск по сайту приложение поставляется в двух версиях, расширенная версия имеет больше функций но требует, чтобы на веб-сервере был VB Scripting Engine 5 или выше. установлены.

  • Сайт Search Pro (ASP, коммерческий)
    Site Search Pro 2.0 - комплексный поисковый скрипт для ASP или PHP. места.

В вывод

Мы рекомендуем в большинстве случаев передать этот аспект вашего сайта на аутсорсинг кто-нибудь другой.Сэкономленные хлопоты отнимут у вас годы, возможно, даже ваши сервер.

Бесплатно! - Как создать поисковую систему PHP - Премиум-контент - Статьи

Введение или рассказ о том, как легко может работать поисковая машина

Пять лет назад на вашем сайте могло быть пять или шесть страниц. Однако со временем он вырос, и однажды вы просыпаетесь с 2 ГБ контента, более чем тысячей ссылок и невозможностью отсортировать их по релевантности. Вам и вашим посетителям нужен способ быстрее получать информацию о ваших услугах и продуктах.Поисковая система может помочь вам и посетителям вашего сайта найти эту ценную информацию на вашем быстрорастущем сайте.

В любом случае, давайте объясним, как поисковая система работает в целом. Обычно поисковая система отправляет «паука», чтобы получить как можно больше документы по возможности. Затем другая программа, называемая индексатором, читает эти документы и создает индекс на основе слова, содержащиеся в каждом документе. Каждая поисковая система использует собственный алгоритм для создания своих индексов, так что: в идеале по каждому запросу возвращаются только релевантные результаты.

В следующем уроке мы собираемся создать поисковая система PHP с базой данных MySQL. Мы строим нашу поисковую систему на PHP 5.2.3. PHP 5.2.3 включает последние дополнения, такие как встроенные База данных SQLite, поддержка клиентской библиотеки MySQL 4.1 с введением расширения mysqli и т. д.


Поисковая система PHP

Почему мы должны использовать MySQL? Ну это милая gem поможет нам упростить организацию, выборку и хранение данных, поэтому что нам не нужно будет создавать собственный паук и индексатор.MySQL сделает тяжелая работа для нас!

Примечание: Для получения информации о том, как установить и Чтобы настроить MySQL в Windows, вы можете обратиться к статье Гарета Даунса-Пауэлла « Установка MySQL на ПК с Windows » .
Для установки PHP 5.x.x в Windows вы можете хочу сослаться на статью Аллана Кента «Установка PHP 5 под Windows».

Хорошо, если вы уже установили PHP, MySQL с соответствующей серверной платформой по вашему выбору, IIS или Apache, у вас есть полностью рабочий веб-сервер.Теперь перейдем к деталям.

Для поисковой системы мы построим в этом руководстве я решил использовать таблицу с 3 столбцами с именами ID, заголовок и статья, где я сохранил информацию, которую пользователь буду искать. Вы можете ввести некоторые данные в свою таблицу или даже сделать свой собственный стол. Поле ID - это первичный ключ для таблицы, а заголовок и статья - это поля, в которых мы планируем искать. Чтобы вам было легче, я приготовил запрос для создания таблицы.Вам просто нужно скопировать и вставить следующий код в интерфейс MySQL в базе данных. В для этого войдите в свой PHPMyAdmin из любимого браузера, затем выберите вашу базу данных и таблицу соответственно. Там вы должны заметить вкладку названный «SQL». Вы должны вставить туда следующий код:

СОЗДАТЬ ТАБЛИЦУ `news` (
`id` tinyint (4) NOT NULL auto_increment,
`title` varchar (200) NOT NULL по умолчанию '',
текст статьи NOT NULL,
УНИКАЛЬНЫЙ КЛЮЧ `id` (` id`),
КЛЮЧ ПОЛНОГО ТЕКСТА `title` (` title`, `article`)
) ДВИГАТЕЛЬ = MyISAM AUTO_INCREMENT = 1 СИМВОЛ ПО УМОЛЧАНИЮ = latin1 AUTO_INCREMENT = 1;

На вкладке «Обзор» вы можете увидеть записи в вашей таблице.Чтобы вставить новые записи, перейдите на вкладку «Вставить» и добавить новые значения в поля Заголовок и Статья. Конечно, вы можете продлить свой таблицу и добавить дополнительные поля или изменить тип текущих полей в целиком, чтобы изменить всю таблицу для вашего удобства.

Как мы будем действовать? Мы начнем создавать форму поиска, затем настроив наше подключение к базе данных, пройдите через саму функцию поиска и, наконец, протестируйте нашу поисковую систему.Кроме того, мы собирается разработать дополнительные функции, такие как перелистывание и отображение результатов поиска время.

Начало страницы поиска…

Сначала создадим нашу страницу поиска с форма, в которой посетители сайта будут вводить ключевые слова для поиска контента. Откроем наш любимый веб-редактор и создайте новую страницу. Затем вставьте новую форму под названием searchbox и кнопку со значением Search. Наконец, сохраните страницу как Search.php. Вы можете захотеть используйте метод POST вместо метода GET для вашей формы, поскольку он более безопасный.Для этого урока я выбрал метод GET, поскольку он позволяет мне проверить, правильно ли работает поисковая система.





Документ без названия


Поисковая система с PHP








Как видите, это простой код для формы с текстовым полем и кнопка.

Кирил Илиев

Кирил Илиев начал свою карьеру в качестве менеджера по связям с общественностью в болгарской компании по разработке игрового программного обеспечения, а затем начал работать в Dynamic Zones - компании, стоящей за сетью зон.

Он написал много статей для одного из крупнейших компьютерных журналов в Болгарии - PC Mania.

Он работает над различными проектами, включая PHP, CSS и ASP-скрипты, а также является специалистом по поддержке на DMXzone.com.

По состоянию на апрель 2008 года Кирилл исполняет обязанности менеджера по исследованиям и развитию, исследуя тенденции в новых технологиях, особенно в реализации Silverlight и LINQ.

Просмотреть все сообщения от Кирилла Илиева >>

Поисковая система Zoom - поиск PHP скрипт движка для вашего сайта

Увеличить позволяет добавить на ваш сайт поисковую систему на основе PHP, что идеально подходит для любого веб-сервера Apache или IIS с PHP (5.0 или выше) поддержка.

Zoom - это простое в использовании, автономное решение, которое обеспечивает эффективные и мощные функции поиска с:

  • Внешняя веб-служба не требуется
  • Отсутствие сложной процедуры настройки и установки базы данных
  • Нет требований к сторонним базам данных, таких как MySQL, Postgres, пр.
  • Нет проблем с переносом (просто скопируйте файлы на другой компьютер). и будет работать)
  • Редактирование скрипта не требуется (хотя при желании вы можете это сделать)
  • Без рекламы и баннеров
  • Поддержка до 65 000 страниц с использованием PHP.(До 1 миллиона страниц с опцией CGI)

Вы можно выбрать параметр PHP, просто установив переключатель в Масштабировать перед индексированием. Один пакет Zoom поддерживает все пять скриптов. варианты платформы.

Если ваш веб-сервер не поддерживает PHP, или вы рассмотрение автономного решения (например, поиск на компакт-диске), взгляните на ASP, JavaScript, или варианты CGI.

Чтобы проиндексировать вашего веб-сайта, вам потребуется компьютер с номером

  • Либо ПК с Windows, либо Mac (или сервер Linux)
  • С объемом памяти не менее 128 МБ (для индексации крупных сайтов требуется больше памяти)
  • И не менее 50 мегабайт доступного дискового пространства

Чтобы разместить и предложить онлайн-поиск с использованием PHP, вам потребуется:

  • Веб-сервер с PHP (5.4 или выше) установлен.
  • Разрешения на запись на стороне сервера для ведения журнала результатов поиска (необязательно)

Zoom также может выполнять поиск на следующих платформах одним щелчком мыши кнопка:

Превращение просканированного веб-сайта в поисковую систему с помощью PHP

В предыдущей части этого руководства мы использовали Diffbot для настройки задачи сканирования, которая в конечном итоге собирала контент SitePoint в сборник данных, полностью доступный для поиска с помощью Search API Diffbot.Мы также продемонстрировали эти возможности поиска, применив некоторые общие фильтры и перечислив результаты.

В этой части мы создадим графический интерфейс, достаточно простой, чтобы его мог использовать обычный Джо, чтобы иметь относительно красивую, функциональную и легкую, но детализированную поисковую систему SitePoint. Более того, мы будем использовать не фреймворк, а всего три библиотеки для сборки всего приложения.

Вы можете увидеть демонстрационное приложение здесь.

Это руководство является полностью автономным, и поэтому, если вы решите следовать ему, вы можете начать со свежего экземпляра Homestead Improved.Обратите внимание, что для того, чтобы в полной мере использовать то, что мы создаем, вам понадобится учетная запись Diffbot с функциями Crawljob и Search API.

Начальная загрузка

Двигаясь дальше, я предполагаю, что вы используете машину Vagrant. Если нет, узнайте, зачем вам это нужно, и возвращайтесь.

На свежей виртуальной машине Homestead Improved процедура начальной загрузки выглядит следующим образом:

  composer global требуется beelab / bowerphp: dev-master
mkdir sp_search
cd sp_search
mkdir шаблон публичного кеша шаблон / приложение twig
композитору требуется swader / diffbot-php-client
композитору требуется веточка / веточка
композитору требуется symfony / var-dumper --dev  

Для заказа это:

  • устанавливает BowerPHP глобально, поэтому мы можем использовать его на всей виртуальной машине.
  • создает корневую папку проекта и несколько подпапок.
  • устанавливает клиент PHP Diffbot, который мы будем использовать для выполнения всех вызовов API и итерации результатов.
  • устанавливает шаблонизатор Twig, поэтому мы не повторяем HTML в PHP, как крестьяне 🙂
  • устанавливает VarDumper в режиме разработки, поэтому мы можем легко выполнять отладку во время разработки.

Для начальной загрузки «клиентской части» нашего приложения мы делаем следующее:

  cd общедоступный
mkdir assets assets / {css, js, img}
bowerphp установить бутстрап
bowerphp install normalize.css
сенсорные активы / css / main.css assets / js / main.js index.php token.php  

Я также использовал iconifier для создания некоторых значков и взял большое изображение логотипа SitePoint, чтобы использовать его в качестве фона сайта, но это все совершенно необязательно.

Приведенные выше команды создают несколько папок и пустых файлов и устанавливают Bootstrap. Они также создают фронт-контроллер ( index.php ) нашего небольшого поискового приложения. Мы можем настроить этот файл так:

   false, 'debug' => true)
);
$ vars = [];


parse_str ($ _ SERVER ['QUERY_STRING'], $ queryParams);


if (isset ($ queryParams ['search'])) {

    $ diffbot = новый Diffbot (DIFFBOT_TOKEN);

    
    $ строка = '';

    
    $ search = $ diffbot
        -> поиск ($ строка)
        -> setCol ('sp_search');

    
    
}

echo $ twig-> render ('home.веточка ', $ vars);  

По сути, мы настраиваем Twig, получаем содержимое $ _GET и инициализируем поисковый вызов Diffbot (но никогда не выполняем его). Наконец, мы делаем файл шаблона template / twig / home.twig :

  Здравствуйте!  

Если вы попытаетесь запустить это «приложение» сейчас, вы должны увидеть «Привет». Вы также должны увидеть, что кешированная версия шаблона появится в папке cache . Обязательно сначала настройте файл token.php - ему нужно содержимое:

   

Затем мы добавляем этот файл в проекта.gitignore файл. Не стесняйтесь использовать этот и обновлять его по мере необходимости. Это сделано для того, чтобы мы случайно не передали наш токен Diffbot на Github - украденный токен может стать очень дорогим.

Начальная загрузка завершена, теперь перейдем к сути дела.

Передняя часть

Идея (на данный момент) состоит в том, чтобы иметь одно основное поле поиска, такое как Google, принимающее почти необработанные запросы Search API, и три простых старых текстовых поля, в которые пользователи могут вводить значения, разделенные запятыми:

  • «Автор (ы)» поддержит авторов.При вводе нескольких будет выполняться поиск по схеме «ИЛИ» - например, статьи, написанные автором 1, автором 2, автором 3 и т. Д.
  • «Ключевые слова (любые)» будет искать любое из заданных ключевых слов в любом из полей, извлеченных Diffbot. Сюда входят текст, заголовок, мета, даже автор и т. Д.
  • «Ключевые слова (все)» также выполняет поиск по ключевым словам, но все эти должны все появляться в любом из полей, извлеченных Diffbot.

Давайте обновим наш файл home.twig на основе шаблона HTML5.

  


    
    
     Поиск по SitePoint 
    
    

    

    
    <ссылка rel = "таблица стилей"
          href = "/ bower_components / bootstrap / dist / css / bootstrap.min.css" />
    




<заголовок>
    

SitePoint

поиск
<форма>
>> Переключить подробно поиск
{% include "результаты.веточка '%}
{% include 'google-analytics.twig'%}
<нижний колонтитул> О чем все это?
-
Создано @bitfalls для SitePoint . Размещено на DigitalOcean . {% include "modal-examples.twig"%}

Обратите внимание, что я также извлек некоторые утомительные фрагменты HTML в подшаблоны, которые будут включены. К ним относятся фрагмент кода Google Analytics, модальное окно с примерами поисковых запросов и, что наиболее важно, шаблон результатов, который мы будем использовать для вывода результатов позже. Важен только результат, поэтому создайте файл template / twig / results.twig , даже если он пуст или содержит только Test. Остальные можно полностью удалить из шаблона home.twig или взять их из репозитория Github.

Давайте теперь добавим ко всему этому немного магии CSS flexbox, фоновых изображений и базовых jQuery-измов, чтобы элементы хорошо ладили друг с другом. Например, мы используем класс формы для предотвращения двойной отправки, а также используем localStorage , чтобы запомнить, предпочитает ли пользователь подробный или регулярный поиск:

 

$ (документ).ready (function () {

    $ ('form.submit-once'). submit (function (e) {
        if ($ (this) .hasClass ('отправленная форма')) {
            e.preventDefault ();
            возвращение;
        }
        $ (это) .addClass ('отправленная форма');
        $ ('# отправить'). addClass ('отключено');
    });

    var dsg = $ ('. подробная-поиск-группа');
    var ms = $ ('. основной поиск');

    if (localStorage.getItem ('detail-on') == "true") {
        dsg.show ();
        ms.hide ();
    } еще {
        dsg.hide ();
        ms.show ();
    }

    $ (".подробный поиск "). click (function (e) {
        ms.toggle ();
        dsg.toggle ();
        localStorage.setItem ('подробное описание', dsg.is (': visible'));
    });
});  
 

тело {
    дисплей: гибкий;
    мин-высота: 100vh;
    flex-direction: столбец;
    семейство шрифтов: arial, sans-serif;
}

div.content {
    дисплей: гибкий;
    гибкость: 1;
    align-items: center;
    justify-content: center;
}

div.content.what {
    максимальная ширина: 500 пикселей;
    маржа: авто;
}

div.hidden {
    дисплей: нет;
}

div.search-form {
    ширина: 80%;
}

.полученные результаты {
    максимальная ширина: 600 пикселей;
    размер шрифта: маленький;
}

нижний колонтитул {
    набивка: 1,5 бэр;
    фон: # 404040;
    цвет: # 999;
    размер шрифта: 0,85em;
    выравнивание текста: центр;
    z-индекс: 1;
}

header {
    выравнивание текста: центр;
}

img.bg {
    
    минимальная высота: 100%;
    минимальная ширина: 1024 пикселей;

    
    ширина: 100%;
    высота: авто;

    
    положение: фиксированное;
    верх: -60 пикселей;
    слева: 0;

    z-индекс: -1000;

    непрозрачность: 0,05;
    фильтр: альфа (непрозрачность = 5);
}

@media screen и (max-width: 1024px) {
    img.bg {
        осталось: 50%;
        маржа слева: -512 пикселей;
    }
}  

, и у нас есть наш базовый интерфейс (с «Тестом» из смоделированных результатов .twig ):

Существует одно основное поле поиска, аналогичное Google, которое принимает любое ключевое слово или фразу, созданную в удобной для API поиска форме. Думайте об этом как о прямом доступе к Search API. См. Примеры модального окна, чтобы узнать, о чем он.

Однако, нажав «Toggle Detail», ситуация изменится, и у нас появятся индивидуальные поля поиска, с помощью которых мы можем получить более точные результаты.Давайте сейчас подключим эти поля.

Бэкэнд

Давайте изменим Построение поисковой строки часть index.php на следующее:

 
    $ searchHelper = новый \ SitePoint \ Helpers \ SearchHelper ();
    $ string = (isset ($ queryParams ['q']) &&! empty ($ queryParams ['q']))
        ? $ queryParams ['q']
        : $ searchHelper-> stringFromParams ($ queryParams);  

Для наглядности кода мы абстрагируем механизм построения запросов в класс SearchHelper методом грубой силы.

  // [корень] /app/helpers/SearchHelper.php

 authorCheck ($ queryParams);
        $ this-> keywordCheck ($ queryParams);

        if (empty ($ this-> strings)) {
            die ("Пожалуйста, укажите хотя бы * несколько * значений поиска!");
        }

        return (count ($ this-> strings)> 1)? взорваться ('И',
            $ this-> strings): $ this-> strings [0];
    }

    защищенная функция authorCheck (массив $ queryParams)
    {
        if (isset ($ queryParams ['авторы']) &&! empty ($ queryParams ['авторы'])) {

            $ авторы = array_map (функция ($ item) {
                вернуть 'автор: "'.обрезать ($ item). '"';
            }, explode (',', $ queryParams ['авторы']));

            $ this-> strings [] = '('. ((count ($ sizes)> 1)
                    ? implode ('OR', $ авторы)
                    : $ авторы [0]). ')';
        }
    }

    защищенная функция keywordCheck (массив $ queryParams)
    {
        $ kany = [];
        if (isset ($ queryParams ['keywords_any']) &&! empty ($ queryParams ['keywords_any'])) {
            $ kany = array_map (функция ($ item) {
                возвратная обрезка ($ item);
            }, explode (',', $ queryParams ['keywords_any']));
        }

        $ kall = [];
        if (isset ($ queryParams ['keywords_all']) &&! empty ($ queryParams ['keywords_all'])) {
            $ kall = array_map (функция ($ item) {
                возвратная обрезка ($ item);
            }, explode (',', $ queryParams ['keywords_all']));
        }

        $ строка = '';
        if (! empty ($ kany)) {
            $ строка.= (count ($ kany)> 1)? '('. implode ('ИЛИ',
                    $ kany). ')': $ kany [0];
        }

        if (! empty ($ kall)) {
            $ строка. = 'И';
            $ string. = (count ($ kall)> 1)? implode ('И', $ kall): $ kall [0];
        }

        if (! пусто ($ строка)) {
            $ this-> strings [] = '('. $ string. ')';
        }
    }
}  

Метод stringFromParams вызывает некоторые подметоды, которые ищут некоторые предопределенные ключи массива в переданном массиве параметров и используют их для построения строки запроса, совместимой с API поиска.Для простоты я включил в это руководство только проверку автора и ключевых слов.

Естественно, нам нужно будет добавить пространство имен SitePoint \ Helpers в Composer для автозагрузки:

  "автозагрузка": {
    "пср-4": {
      "SitePoint \\ Helpers \\": "app / Helpers /"
    }
  }  

После редактирования блока автозагрузки нам нужно обновить автозагрузчик composer dump-autoload .

На данный момент у нас есть функция построения запросов и форма поиска.

Давайте проверим и посмотрим, получим ли мы какие-то результаты.

В конце блока index.php if (isset ($ queryParams ['search'])) { введите следующее:

  дамп ($ search-> call ());
дамп ($ search-> call (true));  

Введя diffbot в основное поле поиска, я действительно получаю 13 сообщений SitePoint:

Остались два аспекта нашего приложения:

  • корректно распечатывает эти данные в шаблоне.
  • , позволяющий пользователям перемещаться по страницам в случае возврата более 20 результатов.

Выход

Чтобы получить правильный результат, первое, что мы должны сделать, это присвоить данные шаблонным переменным:

 

    
    $ vars = [
        'results' => $ search-> call (),
        'info' => $ search-> call (true)
    ];  

Затем мы редактируем шаблон results.twig .

  <час>
{% для статьи в результатах%}

<цель = "_ blank" href = "{{article.pageUrl}}"> {{article.title}}

Написано {{article.author}}, опубликовано {{article.date | date ("jS F, Y")}}

{{article.meta.description}}

{% еще %}

Нет результатов :(

{% endfor%}

Нам также нужно добавить стили медиаобъектов в наш CSS.

  .Media h4 {
    размер шрифта: 18 пикселей;
    margin-top: 0;
}

.Media h4 a {
    текстовое оформление: нет;
    цвет: # 1a0dab;
}

.Media h4 a: visit {
    цвет: # 609;
}

.Media h4 a: hover {
    оформление текста: подчеркивание;
}

.СМИ {
    дисплей: гибкий;
    выровнять элементы: гибкий старт;
    ширина: 530 пикселей;
}

.Media.post {
    нижнее поле: 23 пикселя;
}

.Media-figure {
    маржа справа: 1em;
    ширина: 50 пикселей;
}

.Media-body {
    гибкость: 1;
}

.Media .description {
    высота строки: 1,4;
    перенос слов: слово-разрыв;
    цвет: # 545454;
}  

Вуаля.У нас есть базовая страница результатов, похожая на Google:

Примечание : Некоторые результаты дублируются из-за разных действующих ссылок, ведущих к одним и тем же ресурсам (перенаправления). Это временное ограничение API поиска, которое можно устранить, удалив дубликаты вручную, пока команда разработчиков Diffbot не добавит исправление.

Чтобы добавить разбиение на страницы, нам нужно общее количество совпадений и количество результатов на странице. Если мы знаем текущую страницу, мы можем легко вычислить все остальное.Чтобы реализовать разбиение на страницы, делаем следующее.

Сначала мы редактируем home.twig , добавляя следующий фрагмент кода под тегом results.twig include:

  {% include 'pagination.twig'%}  

, а затем создайте этот шаблон:

  {% если paginationData.pageCount> 1%}
    
{% endif%}  

Первые два блока IF отображают ссылки на первую и последнюю страницу или показывают их как отключенные, если пользователь уже находится на первой странице. Цикл в середине проходит через диапазон страниц и отображает их - несколько перед текущей страницей и несколько после, также известное как «скользящая разбивка на страницы».Последние два блока отображают ссылки «следующая страница» и «последняя страница» соответственно.

Чтобы получить значений paginationData , которые использует этот шаблон, мы создадим еще один вспомогательный класс:

  // приложение / Помощники / PaginationHelper.php

 getHits () / $ itemsPerPage);

        $ paginationData ['currentPage'] = ($ paginationData ['pageCount'] <$ currentPage)
            ? $ paginationData ['pageCount']
            : $ currentPage;

        $ paginationData ['pageRange'] = ($ pageRange> $ paginationData ['pageCount'])
            ? $ paginationData ['pageCount']
            : $ pageRange;

        $ delta = ceil ($ paginationData ['pageRange'] / 2);

        if ($ paginationData ['currentPage'] - $ delta> $ paginationData ['pageCount'] - $ paginationData ['pageRange']) {
            $ pages = range ($ paginationData ['pageCount'] - $ paginationData ['pageRange'] + 1,
                $ paginationData ['pageCount']);
        } еще {
            if ($ paginationData ['currentPage'] - $ delta <0) {
                $ delta = $ paginationData ['currentPage'];
            }
            $ offset = $ paginationData ['currentPage'] - $ дельта;
            $ pages = range ($ offset + 1, $ offset + $ paginationData ['pageRange']);
        }

        $ paginationData ['pagesInRange'] = $ pages;

        $ близость = этаж ($ paginationData ['pageRange'] / 2);

        $ paginationData ['startPage'] = $ paginationData ['currentPage'] - близость $;
        $ paginationData ['endPage'] = $ paginationData ['currentPage'] + $ близость;

        if ($ paginationData ['startPage'] <1) {
            $ paginationData ['endPage'] = min ($ paginationData ['endPage'] + (1 - $ paginationData ['startPage']),
                $ paginationData ['pageCount']);
            $ paginationData ['startPage'] = 1;
        }

        if ($ paginationData ['endPage']> $ paginationData ['pageCount']) {
            $ paginationData ['startPage'] = max ($ paginationData ['startPage'] - ($ paginationData ['endPage'] - $ paginationData ['pageCount']),
                1);
            $ paginationData ['endPage'] = $ paginationData ['pageCount'];
        }

        $ paginationData ['previousPage'] = $ paginationData ['currentPage']> 1;
        $ paginationData ['nextPage'] = $ paginationData ['currentPage'] <$ paginationData ['pageCount'];

        return $ paginationData;

    }
}  

Во многом вдохновленный аналогичной реализацией KnpLabs, этот класс собирает массив paginationData , необходимый для работы элементов управления разбиением на страницы.Пройдите через это, если вам интересно, что он делает - это довольно просто, но если нет, дайте мне знать, и я постараюсь объяснить.

Наконец, нам нужно реализовать это в index.php . Окончательная версия файла выглядит так:

   false, 'debug' => true)
);

$ function = new Twig_SimpleFunction ('qprw', function (array $ replacements) {
    parse_str ($ _ SERVER ['QUERY_STRING'], $ qp);
    foreach ($ замен как $ k => $ v) {
        $ qp [$ k] = $ v;
    }
    вернуть '?'. http_build_query ($ qp);
});
$ twig-> addFunction ($ function);

$ vars = [];


parse_str ($ _ SERVER ['QUERY_STRING'], $ queryParams);

$ resultsPerPage = 20;
$ pageRange = 9;

if (! isset ($ queryParams ['страница'])) {
    $ queryParams ['страница'] = 1;
}


if (isset ($ queryParams ['search'])) {

    $ diffbot = новый Diffbot (DIFFBOT_TOKEN);

    
    $ searchHelper = новый SearchHelper ();
    $ string = (isset ($ queryParams ['q']) &&! empty ($ queryParams ['q']))
        ? $ queryParams ['q']
        : $ searchHelper-> stringFromParams ($ queryParams);

    
    $ search = $ diffbot
        -> поиск ($ строка)
        -> setCol ('sp_search')
        -> setStart (($ queryParams ['страница'] - 1) * $ resultsPerPage)
        -> setNum ($ resultsPerPage)
    ;

    
    $ results = $ search-> вызов ();
    $ info = $ search-> call (правда);

    $ ph = новый PaginationHelper ();
    $ vars = [
        'results' => $ results,
        'info' => $ info,
        'paginationData' => $ ph-> getPaginationData (
            $ queryParams ['страница'], $ resultsPerPage, $ pageRange, $ results, $ info
        )
    ];

}

echo $ twig-> render ('home.веточка ', $ vars);  

Мы добавили пользовательскую функцию Twig, которую мы будем использовать в шаблоне для замены параметра запроса другим (например, значение page в URL-адресах - см. qprw в приведенном выше коде шаблона). Мы также добавили переменные для количества результатов на страницу и для диапазона страниц - количества страниц, отображаемых в элементе управления разбиением на страницы. Мы инициализируем первую страницу, если не переданы параметры страницы, а затем изменяем вызов API поиска, чтобы учесть это. Наконец, мы передаем необходимые значения в шаблон, и у нас есть рабочая поисковая система SitePoint:

Автосортировка по дате

И последнее, но не менее важное: мы можем и должны работать над автосортировкой по дате публикации - прямо сейчас Search API возвращает URL-адреса в порядке обработки, который может быть полностью случайным.Мы можем добиться этого, улучшив наш класс SearchHelper:

  защищенная функция sortCheck (массив $ queryParams)
    {
        if (isset ($ queryParams ['sort']) &&! empty ($ queryParams ['sort'])) {
            $ operator = (isset ($ queryParams ['dir']) && $ queryParams ['dir'] == 'asc')? "revsortby:": "sortby:";
            $ this-> appendStrings [] = $ оператор. $ queryParams ['сортировка'];
        } еще {
            $ this-> appendStrings [] = "sortby: date";
        }
    }  

Нам также нужно было поставить новый охраняемый объект:

  защищено $ appendStrings = [];  

Это связано с тем, что разные безусловные значения запроса, такие как sortby (см. Документацию), не могут быть логически связаны, следовательно, перед ними не может быть И , иначе результаты станут непредсказуемыми.Они должны быть отделены от строки запроса пробелом.

Заключение

В этой отдельной части 2 нашего руководства по поисковой системе SitePoint мы создали простой графический интерфейс для поиска просканированных данных статей SitePoint, что сделало всю библиотеку сайта мгновенно доступной для поиска по многим полям. Мы узнали, как легко быстро начать новые проекты, и увидели, насколько эффективными инструментами, такими как Twig и BowerPHP, делают нас - и все это без необходимости использовать целые фреймворки.

В ближайшем будущем я буду постепенно улучшать (включая вышеупомянутое) приложение, поскольку я частично интегрирую его в другое приложение, так что следите за обновлениями и продолжайте проверять! Мы даже рассмотрим некоторые из этих обновлений в будущих руководствах, поэтому, если приложение не выглядит так, как на скриншотах этого руководства, когда вы открываете его здесь, оно просто эволюционировало.Всегда есть оригинальная версия 0.1, которую вы можете клонировать, чтобы получить точную копию.

Если у вас есть вопросы или комментарии, оставьте их ниже!

Добавьте на свой сайт систему пользовательского поиска с использованием PHP и MySQL - codediesel

Поиск является неотъемлемой частью всех веб-сайтов. Большинство текущих WordPress и других сайтов используют встроенные возможности поиска или полагаются на пользовательский поиск Google. Однако во многих случаях вам может понадобиться добавить свою собственную поисковую систему, которую вы сами можете контролировать.Это может быть особенно полезно, если у вас небольшая интрасеть. В этом посте мы увидим, как интегрировать небольшую поисковую систему PHP в любой веб-сайт, чтобы добавить возможности пользовательского поиска.

Sphider - это легкий (размером менее 100 КБ) веб-паук и поисковая система, написанная на PHP, использующая MySQL в качестве своей внутренней базы данных. Sphider поддерживает все стандартные параметры поиска, но также включает другие расширенные функции, такие как автозаполнение слов, варианты написания и т. Д. Интерфейс администрирования обеспечивает простой способ индексирования и управления функциями поиска.Sphider включает в себя автоматический сканер, который может переходить по ссылкам, найденным на сайте, и индексатор, который составляет индекс всех поисковых запросов, найденных на страницах. Он написан на PHP и использует MySQL в качестве внутренней базы данных.

Установка

Загрузите библиотеку с sphider.eu и следуйте инструкциям в файле install.txt. По сути, все, что вам нужно сделать, это создать пустую базу данных с именем «sphider_db» и обновить детали базы данных в файле «settings / database.php». Как только это будет сделано, откройте страницу администратора «admin / admin.php »и войдите в систему, используя имя пользователя / пароль как« admin ».

Результаты поиска

Прежде чем мы продолжим, я хотел бы привести страницу с окончательными результатами поиска, которая будет видна после индексации сайта. Обратите внимание, что большинство элементов можно настроить в разделе администратора. Также посмотрите живую демонстрацию на mathisfun.com.

Индексирование вашего сайта

После того, как вы войдете в админку, вы увидите следующий экран.

Наша первая задача - добавить сайт и начать индексацию.Ниже приводится страница индексации с различными вариантами установки уровня глубины. Обратите внимание, что если вы выберете полный, для индексации большого сайта может потребоваться некоторое время. Глубина индексации означает, на сколько «кликов» страница может быть от начальной. Глубина 0 означает, что индексируется только начальная страница, глубина 1 индексирует начальную страницу и все страницы, на которые она ссылается и т. Д. Для первоначального тестирования рекомендуется сохранить глубину равной 1.

Вы можете дополнительно настроить процесс сканирования, щелкнув ссылку «Дополнительные параметры» слева.Это отобразит дополнительные параметры, как показано ниже. По умолчанию Sphider никогда не покидает данный домен, поэтому ссылки с domain.com, указывающие на domain2.com, не переходят. Установив флажок «Паук может покинуть домен», Sphider может покинуть домен, однако в этом случае настоятельно рекомендуется определить правильное включение / не включение списков строк, чтобы не дать пауку зайти слишком далеко.

Если вы хотите изменить поведение Sphider по умолчанию, вы можете сделать это либо через интерфейс администратора, либо напрямую отредактировав файл settings / conf.php ’.

После завершения индексации вы можете проверить статистику - проиндексированные ссылки, проиндексированные слова и т. Д. На вкладке «Статистика». Вы также можете проверить, какие ключевые слова чаще всего искали, и другую статистику как таковую.

Использование индексатора из командной строки

Можно просматривать веб-страницы через командную строку. Это может быть чрезвычайно полезно, если вы хотите автоматизировать процесс или запускать sphider через регулярные промежутки времени с помощью CRON.

Например, для поиска и индексирования http: // www.domain.com/test.html на глубину 2, мы можем использовать следующее.

php spider.php -u http://www.domain.com/test.html -d 2
 

Если вы хотите переиндексировать тот же URL, используйте:

php spider.php -u http://www.domain.com/test.html -r
 

Полные варианты приведены ниже.

php spider.php

-all Переиндексировать все в базе данных
-u Установить индексируемый URL
-f Установить полную глубину индексации (неограниченная глубина)
-d Установить глубину индексации на
-l Разрешить пауку покинуть начальный домен
-r Настроить паука для переиндексации сайта
-m Установить строку (строки), которые должен включать URL (используйте \ n в качестве разделителя между несколькими строками)
-n Установить строку (строки), которые URL-адрес не должен включать (используйте \ n в качестве разделителя между несколькими строками)
 
Настройка страницы результатов

Обратите внимание, что каждый элемент страницы результатов поиска настраивается в разделе «Настройки» на странице администратора.Также вы можете изменить CSS, чтобы он соответствовал дизайну вашего сайта.

Создание простой формы поиска с помощью PHP-скрипта

Создание базы данных

Наличие на вашем сайте функции поиска помогает пользователям находить именно то, что они ищут. Поисковые системы могут варьироваться от простых до сложных.

В этом руководстве по поисковой системе предполагается, что все данные, которые вы хотите использовать для поиска, хранятся в вашей базе данных MySQL. У него нет никаких сложных алгоритмов - просто простой запрос , например , но он работает для базового поиска и дает вам отправную точку для создания более сложной поисковой системы.

Для этого учебника требуется база данных. Приведенный ниже код создает базу данных тестирования, которую вы будете использовать при работе с руководством.

Форма поиска HTML

Этот HTML-код создает форму, которую пользователи будут использовать для поиска. Он предоставляет пространство для ввода того, что они ищут, и раскрывающееся меню, в котором они могут выбрать поле, которое они ищут (имя, фамилия или профиль). Форма отправляет данные обратно себе с помощью PHP_SELF ( ) функция. Этот код находится не внутри тегов, а над или под ними.

Код поиска PHP

Этот код можно разместить над или под формой HTML в файле в зависимости от ваших предпочтений. Разбивка кода с пояснениями представлена ​​в следующих разделах.

Взлом PHP-кода - Часть 1

В исходной HTML-форме у нас было скрытое поле, которое при отправке устанавливает для этой переменной значение " да " . Эта строка проверяет это. Если форма была отправлена, она запускает код PHP; в противном случае он просто игнорирует остальную часть кода.

Следующее, что нужно проверить перед выполнением запроса, - это то, что пользователь действительно ввел строку поиска. Если нет, мы просим их сделать это и больше не обрабатывать код. Если бы у нас не было этого кода и пользователь ввел пустой результат, он вернул бы все содержимое базы данных.

После этой проверки мы подключаемся к базе данных, но перед тем, как начать поиск, нам нужно выполнить фильтрацию.

Это изменяет все символы строки поиска на верхний регистр.

Это удаляет любой код, который пользователь мог попытаться ввести в поле поиска.

И это убирает все пробелы - например, если пользователь случайно поставил несколько пробелов в конце своего запроса.

Взлом PHP-кода - Часть 2

Этот код выполняет фактический поиск. Мы выбираем все данные из нашей таблицы, ГДЕ поле, которое они выбирают, похоже на строку поиска. Мы используем upper () здесь для поиска версии полей в верхнем регистре.Ранее мы также переводили наш поисковый запрос в верхний регистр. Эти две вещи вместе в основном игнорируют регистр. Без этого поиск по запросу «пицца» не вернул бы профиль, в котором слово «пицца» было с заглавной буквы P. Мы также используем процент «%» по обе стороны от переменной $ find, чтобы указать, что мы ищем не только для этого термина, а скорее для того термина, который, возможно, содержится в основной части текста.

Эта строка и строки под ней запускают цикл, который будет проходить и возвращать все данные.Затем мы выбираем, какая информация будет возвращена пользователю ECHO и в каком формате.

Этот код подсчитывает количество строк результатов. Если число равно 0, результатов не найдено. Если это так, мы сообщаем об этом пользователю.

Наконец, если пользователь забыл, мы напоминаем ему, что он искал.

Если вы ожидаете большого количества результатов запроса, вы можете использовать разбиение на страницы для отображения результатов.

Сценарий поиска по сайту - Сценарий и программное обеспечение поисковой системы по веб-сайту

Посмотреть ДЕМОНСТРАЦИЮ ОНЛАЙН>

Преимущества и особенности:

  • Простая настройка и мгновенная работа
    Не тратьте время зря, просто нажмите «Начать индексирование» и поиск по вашему сайту готов к работе
  • Полный контроль макета и дизайна
    Отличные функции для настройки вывода данных на ваш веб-сайт.Включен редактор онлайн-шаблонов!
  • Работает с любым сайтом
    Масштабируемость и возможность интеграции с малым и большим Интернетом. похожих сайтов
  • Полностью совместим с Dreamweaver, FrontPage и другие редакторы.
  • Встроенный фильтр и правила: полный контроль в результатах поиска по сайту
  • Кросс-платформенное решение
    Поддерживается хостинг Unix и Windows
  • Поддержка нескольких групп поиска
    Создание нескольких групп поиска для поиска в сети сайтов
  • Приоритетная поддержка 24/7
  • И наконец, непревзойденная цена и 100% деньги гарантия возврата!
  • Полный список функций >>
.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *