DWWEB.RU
СКРИПТЫ

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

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

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

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

Навигация по странице :
  1. Поиск по заголовкам -> база данных
  2. Поиск по заголовкам -> файл
  3. Живой пример поиска по заголовкам
  4. Готовый код поиска по заголовкам


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

  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. Мы не будем говорить о старом контенте - если захотите прочитайте. там всего пара предложений!
    Начнем с предположения... что унас есть какая-то страница, типа карты сайта (я не буду рассказывать - почему мы не можем взять её для примера!)
    Мы сделали специальную, страницу пример, куда выведем все заголовки с нашего сайта, вы можете на эту страницу посмотреть

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

    Зачем страница нужна!? Для того, чтобы показать живой пример, как это работает... и как нужно обработать такую страницу. чтобы можно было запустить поиск по этим заголовкам! Искать же как-то нужно...
    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. Теперь выше приведенный код поиска по заголовкам нужно здесь просто вывести:

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

    Введите в поле, слово либо словосочетание и нажмите искать

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


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

  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.

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

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

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

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

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

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

Не забудь !
Название скрипта :Поиск по заголовкам
Скрипт № 13.1
Скачать - архив
Все скрипты на одной странице
Оставить комментарийCOMMENTS+
Сообщений пока нет - Вы можете стать первым
BBcode
нажмите, чтобы загрузить аватар
Загрузить свой аватар(max ширина, высота = 100px) ( как это работает)

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

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