Приведение в порядок результатов поиска из базы данных php - PullRequest
1 голос
/ 30 октября 2011

Когда мои пользователи ищут контент на моем веб-сайте, я повторяю $title, $content где как $keyword

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

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

Я прочитал, что strpos и strstr должны это сделать.Итак, мой вопрос ...

С помощью следующего кода:

<?php 

foreach ($searchcontent ->result() as $row)
{
echo $title
echo $content
}
?>

Как выделить ключевое слово и отобразить количество символов на каждой стороне первого найденного ключевого слова ??

1 Ответ

2 голосов
/ 30 октября 2011

Вы можете сделать что-то вроде этого:

В скрипте PHP

$keyword = THESEARCHEDKEYWORD;
$pattern = "/([^a-z])$keyword([^a-z])/i";
$highlight = '<span class="highlight">' . $keyword . '</span>';
foreach ($searchcontent->result() as $row)
{
   $title = preg_replace($pattern, "$1$highlight$2", $title);
   $content = preg_replace($pattern, "$1$highlight$2", $content);
   echo $title;
   echo $content;
}

И затем добавить это правило в CSS :

.highlight
{
   font-weight: bold;
   background-color: yellow;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...