Когда мои пользователи ищут контент на моем веб-сайте, я эхо $title, $content
где $keyword
Функция поиска реализована правильно, но поскольку каждое поле содержимого в моей базе данных содержит довольно много абзацев текста, это затрудняет чтение пользователями, когда результаты отображаются на странице.
Я хотел бы, чтобы пользователь выполнил поиск введенного ключевого слова, а затем в отображаемых результатах нарежьте текст некоторым количеством букв до и после ключевого слова и выделите его?
Я прочитал, что strpos и strstr должны это делать. Так что мой вопрос …
Со следующим кодом:
<?php foreach ($searchcontent ->result() as $row) { echo $title echo $content } ?>
Как я могу выделить ключевое слово и отобразить несколько символов с каждой стороны первого найденного ключевого слова?
Вы можете сделать что-то вроде этого:
В скрипте PHP
$keyword = THESEARCHEDKEYWORD; $pattern = "/([^az])$keyword([^az])/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; }