У меня есть строка с некоторыми амперсандами.
Например, символ «Эквивалентность»á «в моей строке.
Но моя функция:
preg_replace("/(" . $q . ")+/i", "<strong>$1</strong>", $c)
Если переменная $ q соответствует любому из этих символов «á «это уже не амперсанд, и я получаю нечитаемый текст.
Как написать шаблон, который будет игнорировать все символы с частями амперсандов?
Или шаблон, который игнорирует все между «&» а также «;».
Это чешский язык, и мне нужно написать правильную функцию для освещения ключевых слов в результатах поиска …
Я нашел решение этой проблемы
$str = html_entity_decode(preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|tilde|uml);~i', '$1', $string), ENT_QUOTES, 'UTF-8');
$res = preg_replace("/(" . $q . ")+/i", "<strong>$1</strong>", $str);
Других решений пока нет …