У меня есть список брендов и я хочу предоставить функцию поиска с подсветкой. Например, есть следующие бренды
- Apple
- Cewe Color
- L'Oréal
- Microsoft
- Макдональдс
- Том Тейлор
Затем пользователь вводит lor
в форме поиска. Я использую следующий фрагмент для поиска
class search {
private function simplify($str) {
return str_replace(array('&',' ',',','.','?','|','\'','"'), '', iconv('UTF-8', 'ASCII//TRANSLIT', $str));
}
public function do_search($search) {
$search = self::simplify($search);
$found = array();
foreach (self::$_brands as $brand) {
if (mb_strstr(self::simplify($brand['name']), $search) !== false) $found[]= $brand;
}
return $found;
}
}
Это дает мне:
- Cewe Color
- L'Oréal
- Том Тейлор
Как будет возможно выделение? Как:
Cewe Co<b>lor</b>
L'<b>Oré</b>al
Tom Tai<b>lor</b>
Кстати: я знаю, что большинство вещей можно сделать с помощью str_replace()
, но это не всегда соответствует моим потребностям