Всех друзей поздравляем с Новым годом! Всего вам самого наилучшего! Всех благ, здоровья а материальное приложится!
СКРИПТЫ althtmlcssphpjsblog

Поиск по заголовкам php

Поддержи проект!!!

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

Теперь - нам нужно определиться, как и где мы будем брать заголовки и что вообще значит заголовки и поиск по заголовкам!?

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

Поиск по заголовкам php

  1. Алгоритм поиска по заголовкам
  2. Поиск по заголовкам -> база данных
  3. Поиск по заголовкам -> файл
  4. Живой пример поиска по заголовкам
  5. Готовый код поиска по заголовкам
  6. Поиск по контенту
  7. Скачать можно здесь

    Алгоритм поиска по заголовкам

    С самого начала вы должны себе представлять, хотя бы примерно, как будет поиск по заголовкам работать!? Т.е.е представлять себе алгоритм!

    1). Надо получить весь контент
    2). Пропустить через скрипт поиска весь контент и получить результат!
    3). Ниже показаны два варианта реализации верхних двух пунктов!

  1. Поиск по заголовкам из базы данных

    Как искать по заголовкам если у ваш сайт в базе данных!? У вас есть строка, в которой должен быть и заголовок страницы и где-то в соседнем столбце адрес на страницу.

    Вам нужно узнать в каком столбце находится заголовок и как мы делали вот здесь -> Массив всех ссылок

    Только вместо ссылки ищем столбец, который отвечает за заголовок!

    Получим из формы искомое слово

    $poisk = $_POST["poisk"];//переменная искомое слово

    И вместо вот такой строки(из кода приведенного по выше идущей ссылке)

    $array_Url[] = $row["столбец отвечающий за ссылку"];

    ... у вас должно быть что-то похожее на:

    if(@substr_count($row["столбец отвечающий за заголовок"], $poisk) and $poisk)

    {

    $result = $poisk ."найдено в заголовке страницы" . $row["столбец отвечающий за заголовок"];

    }

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

    <form method="POST" action="">

    <input type="text" name="poisk">

    <input type="submit" name="button" value="ОТПРАВИТЬ">

    </form>

  2. Поиск по заголовкам по файлам

    Главное условие - что у нас есть какая-то страница, типа карты сайта (я не буду рассказывать - почему мы не можем взять её для примера!)
    Либо страница sitemap.xml - вытащить все ссылки оттуда не так сложно, как может показаться!
    Мы сделали специальную, страницу пример, куда выведем все заголовки с нашего сайта, вы можете на эту страницу посмотреть

    Специальная страница для поиска по заголовкам!?

    Зачем эта страница нужна!? Для того, чтобы показать живой пример, как это работает... и как нужно обработать такую страницу. чтобы можно было запустить поиск по этим заголовкам! Искать же как-то нужно...
    1). С помощью функции file_get_contents получим все, что находится на данной странице:
    $file = file_get_contents('https://dwweb.ru/__a-data/__all_for_scripts/__examples/php/search/test_main.php' );
    2). Откройте страницу и нажмите ctrl + U и вы увидите. что все ссылки находятся в одном блоке div - получим все, что внутри div с id="main" с помощью -> preg_match_all
    preg_match_all('#<div id="main">(.+?)</div>#is', $file , $arr);
    3). Если мы выведем $arr[1] с помощью print_r, то увидим массив с одной ячейкой...

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

    Но нам сейчас эту ячейку надо превратить в массив нам нужна функция explode и нам понадобится нулевая ячейка этого массива $arr[1][0], и разобьем её по разделителю перенос строки...
    $ARRAY_URL = explode("\n",$arr[1][0]) ;

    У нас получится массив(выведем 10 строк массива):



    4). Создадим отдельную переменную, которая будет числом ячеек массива
    $ARRAY_URL_COUNT = count( $ARRAY_URL );
    -> зачем!? Я не буду рассказывать -> просто посмотрите на ниже идущие два варианта и скажите, какой будет лучше? И почему!?
    4.1).

    $ARRAY_URL_COUNT = count( $ARRAY_URL );

    for ($i = 0; $i < $ARRAY_URL_COUNT; $i++)

    {

    }

    4.2).

    for ($i = 0; $i < count( $ARRAY_URL ); $i++)

    {

    }

    5).

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

    if($_POST['button'])

    {

    for ($i = 0; $i < $ARRAY_URL_COUNT; $i++)

    {

    if (strpos( $ARRAY_URL[$i] , $poisk) != false)

    {

    $line_count++;

    $line_result .= '<red>'.$line_count .').</red> '. $ARRAY_URL[$i] ."\n" ;

    }

    }

    if (!$line_count)

    {

    $vivod_info = "Простите, поиск ничего не дал!<br>

    Попробуйте ввести часть интересующего слова<br>

    Попробуйте изменить строку поиска! ";

    }

    else

    {

    $vivod_info = 'Всего найдено совпадений <red>'.$line_count.'</red>: <br>' . $line_result;

    }

    }

    6). И последнее, что нам понадобится для поиска по заголовкам данного примера - это форма, чтобы отправить поисковое слово в поиск оп заголовкам...

    <form method="POST" action="">

    <input type="text" name="poisk">

    <input type="submit" name="button" value="ОТПРАВИТЬ">

    </form>

    Получать будем слово так:

    if($_POST['poisk']){$poisk = examplestrtolower(trim(strip_tags($_POST['poisk'])));}

    7). Чуть не забыл... будем использовать свою функцию strtolower для кириллицы

    function examplestrtolower($str) { $ru_array = array('А' => 'а','Б' => 'б','В' => 'в','Г' => 'г','Д' => 'д', 'Е' => 'е','Ё' => 'ё','Й' => 'й','Ж' => 'ж','З' => 'з','И' => 'и','К' => 'к','Л' => 'л','М' => 'м','Н' => 'н','О' => 'о','П' => 'п','Р' => 'р','С' => 'с','Т' => 'т','У' => 'у','Ф' => 'ф','Х' => 'х','Ц' => 'ц','Ч' => 'ч','Ш' => 'ш','Щ' => 'щ','Ъ' => 'ъ','Ы' => 'ы','Ь' => 'ь','Э' => 'э','Ю' => 'ю','Я' => 'я'); return strtr($str,$ru_array ); }


    Живой пример поиска по заголовкам

  3. Теперь выше приведенный код поиска по заголовкам нужно здесь просто вывести:

    Как работает поиск по заголовкам

    Введите в поле, слово либо словосочетание и нажмите искать, если не знаете, что искать в качестве примера - забейте слово поиск wall

    Что будем искать!?


    Готовый код поиска по заголовкам

  4. Дарю... не забудь сказать спасибо...

    function examplestrtolower($str) { $ru_array = array('А' => 'а','Б' => 'б','В' => 'в','Г' => 'г','Д' => 'д', 'Е' => 'е','Ё' => 'ё','Й' => 'й','Ж' => 'ж','З' => 'з','И' => 'и','К' => 'к','Л' => 'л','М' => 'м','Н' => 'н','О' => 'о','П' => 'п','Р' => 'р','С' => 'с','Т' => 'т','У' => 'у','Ф' => 'ф','Х' => 'х','Ц' => 'ц','Ч' => 'ч','Ш' => 'ш','Щ' => 'щ','Ъ' => 'ъ','Ы' => 'ы','Ь' => 'ь','Э' => 'э','Ю' => 'ю','Я' => 'я'); return strtr($str,$ru_array ); }

    if($_POST['poisk']){$poisk = examplestrtolower(trim(strip_tags($_POST['poisk'])));}

    $file = file_get_contents('https://dwweb.ru/__a-data/__all_for_scripts/__examples/php/search/test_main.php' );

    preg_match_all('#<div id="main">(.+?)</div>#is', $file , $arr);

    $ARRAY_URL = explode("\n",$arr[1][0]) ;

    $ARRAY_URL_COUNT = count( $ARRAY_URL );

    if($_POST['button'])

    {

      for ($i = 0; $i < $ARRAY_URL_COUNT; $i++)

      {

        if (strpos( $ARRAY_URL[$i] , $poisk) != false)

        {

        $line_count++;

        $line_result .= '<red>'.$line_count .').</red> '. $ARRAY_URL[$i] ."\n" ;

        }

      }

      if (!$line_count)

      {

      $vivod_info = "Простите, поиск ничего не дал!<br>

      Попробуйте ввести часть интересующего слова<br>

      Попробуйте изменить строку поиска! ";

      }

      else

      {

      $vivod_info = 'Всего найдено совпадений <red>'.$line_count.'</red>: <br>' .

      $line_result;

      }

    }

    if(!$vivod_info){$vivod_info = 'Что будем искать!?';}

    echo $vivod_info;


P.S.

Периодически приходится переделывать код, который мы написали раньше.

Меняется структура сайта, и если примеры были основаны на страницах, которые попали под чистку, то эти примеры и коды перестают работать!

Такое обновление неминуемо!

Если вы не остановились!

И какие-то моменты, сейчас кажутся дикими, а раньше это было круто!

Я не говорю, что я достиг "Олимпа", но все же знаний немного прибавилось!


Вас может еще заинтересовать список тем : #PHP | #PHP_FUNCTION | #SEARCH |
Последняя дата редактирования : 2020-03-08 01:36
Название скрипта :Поиск по заголовкам
Скрипт № 14.1Ссылка на скачивение: Все скрипты на одной странице
https://dwweb.ru/comments_1_5/include/img/hand_no_foto.png
no
no
Еще никто не прокомментировал! COMMENTS+   BBcode
аватар
🞨
Загрузить свой аватар
(max ширина, высота = 200px)

Подписаться + =
Теги:
Поиск по заголовкам ph

Последние комментарии :
Марат :
12/06/2020 10:07
Всегда пожалуйста! Приходите еще!!!
подробнее.
Александр :
04/06/2020 01:42
Спасибо
подробнее.
admin :
20/05/2020 10:36
Как бы смешно это не звучало! Но! Запускается новая система комментирования COMMENTS+ 1.5. в тестовом режиме!От…
подробнее.
Паула :
21/05/2020 04:48
Вообще мне очень нравится, что вы делаете! И ваш подход! И ваш стиль!И не обращайте внимание на всяких…
подробнее.
admin :
21/05/2020 05:03
Я Вас помню! Вы частенько оставляли сообщения на сайте!Все никак не мог спросить!? У Вас есть сайт -> зачем это…
подробнее.

НАШИ ПРОЕКТЫ : Проекты находятся в разной степени готовности (просто их столько, что времени не хватает…) Все статьи авторские, при копироавании активная ссылка обязательна DwWeb.ru! © 2015 - 2020 Мы на лучшем хостинге -> ruweb