Как интегрировать свою поисковую форму и поиск Яндекса

Недавно я разработал веб приложение, которое показывает точное время и долготу дня в 13 тысячах городах по всему миру. Естественно, это достаточно объемное приложение размером 26 тысяч страниц.

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

У меня был выбор создать “живой” поиск либо интегрировать поиск от Яндекса. Я выбрал второй вариант, так как пользователь может точно не знать как пишется город, ну и выдача гораздо интереснее у Яндекса.

В дефолтной версии Яндекс предоставляет достаточно лаконичную и не стилизованную поисковую форму. Я же хотел вместо нее использовать свою. Вот такую.

Для того, чтобы получать запрос пользователя через форму и вставлять его в стандартный url выдачи Яндекса потребуется:

  1. Обернуть поисковую форму в тег <form> с указанием метода передачи данных POST, а также в параметре action указать ссылку на обработчик PHP.

2. Написать в обработчике PHP (в данном случае файл search_result.php) небольшой скрипт, который принимает запрос пользователя (ключевую фразу) в массиве $_POST, обрабатывает его и вставляет в параметр URL выдачи Яндекса. Далее, функция header перенаправляет нас на вновь сформированный URL. Не забудьте предварительно создать страницу с результатами выдачи Яндекса. Подробнее о том, как интегрировать поиск Яндекса здесь

ob_start();
$search = htmlspecialchars($_POST['search']);
$searchsimbol = array("`", "'", " ", "  ", "«", "»", "(", ")");
$zamenasimbol = array("+", "+", "+", "+", "+", "+", "+", "+");
$zapros = str_replace(  $searchsimbol,  $zamenasimbol,  $search  );
$new_url = "https://timeandsunrise.ru/search.php?searchid=2356347&text=".$zapros."&web=0#";
header('Location: '.$new_url);
ob_end_flush();

В результате мы получаем на входе.

А на выходе.

Не обращайте внимания на качество выдачи, сайт только начал индексироваться.

Share
Published by
Ilya Gayduk

Recent Posts

База данных для SEO проектов

Вот уже несколько лет я занимаюсь геоинформационными проектами. Это достаточно сложная тема, поскольку строятся такие…

Наша поездка в Стамбул

В декабре 2020 мы с женой решили съездить на пару дней в Стамбул. Этот город…

October CMS

Последний свой проект я сделал на Laravel и получил массу приятных впечатлений в процессе разработки.…

Наша поездка в Питер

Совсем недавно мы решили съездить в Санкт-Петербург просто погулять по городу, посмотреть интересные места. Город…

Laravel или Yii2

Первые три года я писал исключительно на нативном PHP, то есть без использования каких-либо движков…

Почтовый клиент mailbird

Я пользуюсь почтой Яндекс в ежедневном режиме. Также часто просматриваю ленту в facebook. Каждый день…