Здравейте, колеги. Надрасках набързо една функция за намиране на думи в стринг и подчертаването им, за да я използвам в една форма за търсене на продукти:
Тук обаче идва проблемът, че търси по точен низ, а ако напиша в полето за търсене няколко думи, например: "диск метал", няма да подчертае думите "диск" и "метал" ако съществуват поотделно.
Някой има ли идея как да напиша функция, която да взима думите от даден стринг, без значение дали са отделени със запетая, интервал, два интервала или прочие и да ги подчертава с даден цвят ако ги намери в даден стринг? Функцията трябва да не се влияе от главни/малки букви и да съвместима със знаци на кирилица.
Надявам се, че сте ме разбрали. Благодаря предварително. :?:
Код:
function highlight($str, $search = '') {
if (strlen($search) > 0) {
$search = preg_quote($search);
return preg_replace("/($search)/iu", "<span style='color: #000000; background-color: #FFFF00;'>\\1</span>", $str);
} else {
return $str;
}
}
Тук обаче идва проблемът, че търси по точен низ, а ако напиша в полето за търсене няколко думи, например: "диск метал", няма да подчертае думите "диск" и "метал" ако съществуват поотделно.
Някой има ли идея как да напиша функция, която да взима думите от даден стринг, без значение дали са отделени със запетая, интервал, два интервала или прочие и да ги подчертава с даден цвят ако ги намери в даден стринг? Функцията трябва да не се влияе от главни/малки букви и да съвместима със знаци на кирилица.
Надявам се, че сте ме разбрали. Благодаря предварително. :?: