для моей функции автозаполнения мне нужно раскрасить выдержки в предложениях ... так что ...
, если я ищу что-то вроде "sa", советчик дает мне следующее:
Samsung satire sata e-sata ...
Теперь, что бы я хотел от своей функции, это чтобы она подсвечивалась - оборачивает стрелку "sa" (все окраски) и желаемый тег html.
как Sa msung sa шина sa ta e- sa ta
- Должно быть utf8 безопасно
- Он должен сохранять заглавные буквы
- Он должен игнорировать HTML
На сайте PHP я нашел функцию, которая выполняет замену и сохраняет заглавные буквы ... Я изменил ее так, чтобы онаutf8 friendly ...
function ext_str_ireplace($findme, $replacewith, $text) {
// Replaces $findme in $subject with $replacewith
// Ignores the case and do keep the original capitalization by using $1 in $replacewith
// Required: PHP 5
$rest = $text;
$result = '';
while (mb_stripos($rest, $findme) !== false) {
$pos = mb_stripos($rest, $findme);
// Remove the wanted string from $rest and append it to $result
$result .= mb_substr($rest, 0, $pos);
$rest = mb_substr($rest, $pos, mb_strlen($rest)-$pos);
// Remove the wanted string from $rest and place it correctly into $result
$result .= mb_ereg_replace('$1', mb_substr($rest, 0, mb_strlen($findme)), $replacewith);
$rest = mb_substr($rest, mb_strlen($findme), mb_strlen($rest)-mb_strlen($findme));
}
// After the last match, append the rest
$result .= $rest;
return $result;
}
Он прекрасно работает ... как
ext_str_ireplace("sa", "<b>sa</b>", "Samsung");
пока я не передам в него HTML-код
$text= '<p class="red">A client is an application or system that accesses a service made available by a server. </p>';
ext_str_ireplace("cl", "<b>cl</b>", $text);
конечнофункция заменит строку "cl" в "