Поиск по заголовкам php
Как искать по заголовкам, сделать поиск по заголовкам, мы уже делали похожий поиск на страницу, только по контенту см. в меню значок лупы.
Теперь - нам нужно определиться, как и где мы будем брать заголовки и что вообще значит заголовки и поиск по заголовкам!?
Если у вас формируется главная через скрипт, то изначально, где-то эти заголовки уже были перебраны в цикле, либо изначально были где-то в массиве... в общем давайте разбираться!
Поиск по заголовкам php
- Алгоритм поиска по заголовкам
- Поиск по заголовкам ->
база данных - Поиск по заголовкам ->
файл - Живой пример поиска по заголовкам
- Готовый код поиска по заголовкам
- Поиск по контенту
- Скачать
Алгоритм поиска по заголовкам
С самого начала вы должны себе представлять, хотя бы примерно, как будет поиск по заголовкам работать!? Т.е. представлять себе алгоритм!
Поиск по заголовкам из базы данных
Как искать по заголовкам если у ваш сайт в базе данных!? У вас есть строка, в которой должен быть и заголовок страницы и где-то в соседнем столбце адрес на страницу.
Вам нужно узнать в каком столбце находится заголовок и как мы делали вот здесь -> Массив всех ссылокТолько вместо ссылки ищем столбец, который отвечает за заголовок!
Получим из формы искомое слово
И вместо вот такой строки(из кода приведенного по выше идущей ссылке)
... у вас должно быть что-то похожее на:
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>
Поиск по заголовкам по файлам
Либо страница sitemap.xml - вытащить все ссылки оттуда не так сложно, как может показаться!
Мы сделали специальную, страницу пример, куда выведем все заголовки с нашего сайта, вы можете на эту страницу посмотретьСпециальная страница для поиска по заголовкам!?
Зачем эта страница нужна!? Для того, чтобы показать
Не буду показывать сами потренируйтесь...
Но нам сейчас эту ячейку надо превратить в массив нам нужна функция explode и нам понадобится нулевая ячейка этого массива
У нас получится массив(выведем 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] =>
)
->
$ARRAY_URL_COUNT = count( $ARRAY_URL );
for ($i = 0; $i < $ARRAY_URL_COUNT; $i++)
{
}
for ($i = 0; $i < count( $ARRAY_URL ); $i++)
{
}
Нам остается написать цикл в котором будем искать по выше приведенному массиву, в каждой ячейке которого находится заголовок с ссылкой...
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;
}
}
<form method="POST" action="">
<input type="text" name="poisk">
<input type="submit" name="button" value="ОТПРАВИТЬ">
</form>
Получать будем слово так:
function examplestrtolower($str) { $ru_array = array('А' => 'а','Б' => 'б','В' => 'в','Г' => 'г','Д' => 'д', 'Е' => 'е','Ё' => 'ё','Й' => 'й','Ж' => 'ж','З' => 'з','И' => 'и','К' => 'к','Л' => 'л','М' => 'м','Н' => 'н','О' => 'о','П' => 'п','Р' => 'р','С' => 'с','Т' => 'т','У' => 'у','Ф' => 'ф','Х' => 'х','Ц' => 'ц','Ч' => 'ч','Ш' => 'ш','Щ' => 'щ','Ъ' => 'ъ','Ы' => 'ы','Ь' => 'ь','Э' => 'э','Ю' => 'ю','Я' => 'я'); return strtr($str,$ru_array ); }
Живой пример поиска по заголовкам
Теперь выше приведенный код поиска по заголовкам нужно здесь просто вывести:
Как работает поиск по заголовкам
Введите в поле, слово либо словосочетание и нажмите
Что будем искать!?
Готовый код поиска по заголовкам
Дарю... не забудь сказать спасибо...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;
Периодически приходится переделывать код, который мы написали раньше.
Меняется структура сайта, и если примеры были основаны на страницах, которые попали под чистку, то эти примеры и коды перестают работать!
Такое обновление неминуемо!
Если вы не остановились!
И какие-то моменты, сейчас кажутся дикими, а раньше это было круто!
Я не говорю, что я достиг "Олимпа", но все же знаний немного прибавилось!