В связи с переходом на новый движок... возможны сбои в работе! Простите!
Работы производятся прямо сейчас 19-04-2024! 🞨
Меню :
search (5)
php (331)



Blog (1404)
php (331)
js (244)
html (147)
css (131)
html tags (62)
js tag (56)
jquery (42)
text (37)
js method (36)
js date (33)
php array (33)
form html (30)
online (29)
Показать еще :
fonts (26)
ruweb.net (25)
foto (22)
atom (20)
php file (20)
forum (19)
svg (18)
input (18)
hosting (17)
php date (17)
html book (16)
info (16)
board (16)
php time (16)
color (15)
img (14)
js url (14)
js time (14)
js events (14)
htaccess (13)
osclass (13)
знак (13)
select (13)
notepad (13)
table (12)
dw block (12)
php path (12)
download (12)
keyboard (12)
php img (12)
jsphp (11)
icon (11)
form (11)
keyframes (10)
mouse (10)
yandex (10)
js delete (10)
hover (9)
dosite (9)
chart (9)
browser (8)
php url (7)
php post (7)
comment (7)
vs code (7)
iframe (6)
canvas (6)
list (6)
adminka (6)
click (6)
mysql (6)
php get (6)
mb (5)
heading (5)
js math (5)
value (5)
reg.ru (5)
js id (5)
year (5)
ftp (5)
tag a (5)
ssl (4)
bbcode (4)
day (4)
week (4)
base64 (4)
xml (4)
scandir (4)
php var (4)
games (4)
console (4)
month (4)
pages (4)
symbols (4)
vk (4)
js form (4)
submit (4)
task (4)
нок (4)
https (3)
js post (3)
domen (3)
jquery post (3)
line (3)
куб (3)
money (3)
padding (3)
js img (3)
numbers (3)
ucoz (3)
js hash (3)
captcha (3)
qr kod (2)
seo (2)
js vars (2)
prompt (2)
counter (2)
details (2)
height (2)
video (2)
youtube (2)
sitemap (2)
tag hr (2)
typeof (2)
рся (2)
google (2)
arrows (2)
cursor (1)
rutube (1)
нод (1)
archive (1)
scroll (1)
jino (1)
smile (1)
windows (1)
speed (1)

Поиск по заголовкам 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 строк массива):

    Array

    (

    [0] =>
    [1] => Warning: file(/home/dwwebru/domains/dwweb.ru/___main_new_dw/__ROTATE/__MAIN_ROTATE.dat): failed to open stream: No such file or directory in /home/dwwebru/domains/dwweb.ru/public_html/__a-data/__all_for_scripts/__examples/php/search/test_main.php on line 15
    [2] => [3] =>

    )


    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.

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

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

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

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

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

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

Не стесняемся говорить спасибо!
Помочь проекту DwWeb.ru

Поделиться ссылкой! C друзьями или врагами!

Этим вы очень поможете проекту! Заранее огромное спасибо!

Теги:
Поиск по заголовкам ph
Ещё : dwweb.ru есть здесь:
ruweb
Все статьи авторские, при копироавании активная ссылка обязательна DwWeb.ru! © 2015 - 2024 Контакты. Реклама на сайте Лучший хостинг : RUWEB + помощь по RUWEB
Страница загружена за : 0.134134 секунд. Подробнее