@isawillbenice

Как при выводе результатов поиска выделить найденные фрагменты текста?

Как выделить найденные фрагменты фраз при выводе рез-тов поиска? И при этом вывести кусок строки.
Пример habrahabr.ru/search/?q=Javascript&target_type=post...
  • Вопрос задан
  • 3207 просмотров
Решения вопроса 2
hedint
@hedint
Senior front-end developer
Да хоть бы и так (топорное решение в лоб, возможны баги):
<?php
$text = "My pretty text.
This is really cool, really amazing page, man!
really!";
$needle = "really";
$r = str_replace($needle,'<span class="found" style="color:yellow;">'.$needle.'</span>',$text);
echo $r;
Ответ написан
Комментировать
@IceJOKER
Web/Android developer
$text = str_replace($search_text, "<mark>{$search_text}</mark>", $text);

А вывести фрагмент - находите позицию (stripos()) и оттуда выводите сколько нужно символов с помощью substr() (mb_substr())
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@azamat-bogotov
$text = 'Пример исходного текста';
$search = 'Текст';
$markedText = preg_replace('/' . preg_quote($search) . '/i', '<b>$0</b>', $text);
// получим: 'Пример исходного <b>текст</b>а';
// а не: 'Пример исходного <b>Текст</b>а';

Чтобы искомый текст заменялся в рамках контекста. При необходимости добавить дополнительные модификаторы для регулярного выражения '/.../iDu'.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы