Я использую эту функцию для очистки строк для упругого поиска:
function cleanString($string){
$string = mb_convert_encoding($string, "UTF-8");
$string = str_ireplace(array('<', '>'), array(' <', '> '), $string);
$string = strip_tags($string);
$string = filter_var($string, FILTER_SANITIZE_STRING);
$string = str_ireplace(array("\t", "\n", "\r", " "," ­",":"), ' ', $string);
$string = str_ireplace(array("­","«","»","£"), '', $string);
return trim($string, ",;.:-_*+~#'\"´`!§$%&/()=?«»")
}
Это делает все что угодно, но проблема, с которой я сталкиваюсь, связана с функцией trim
на оченьконец.Предполагается, что он удаляет пробелы и специальные символы и работал до недавнего времени, когда я добавил еще два специальных символа для удаления из строки: «
и »
.Это вызвало проблемы с другим специальным символом:
Когда я передаю слово België
в функцию, ë
повреждается, а упругая ошибка выдает ошибку.
- Почему обрезаетсяиспортить совершенно другого персонажа?
- Как я могу это исправить, чтобы я разобрал
«
и »
и сохранил ë
?