Как удались из строки нестандартные символы?

AlexeyPHP

Новичок
Как удались из строки нестандартные символы?

Допустим в БД встречаются названия городов, в которых есть нестандарные символы (например, европейские буквы вроде u с двумя точками над ней). В названиях файлов такие символы не могут присутствовать, поэтому их надо заменить "-", к примеру.

Возможно каким-то образом испрользовать str_replace для этого? Если да, то что вставить вместо xxx?

PHP:
$norm = str_replace(xxx,"-",$raw);
 

CDParkers

Guest
А есть готовый масив, ато я такой начал составлять и он очень большой начал выходжить, теперь циферками называю вообще
 

kruglov

Новичок
тогда дешевле иметь массив стандартных символов

А ü надо заменять не на -, а на u
 

AlexeyPHP

Новичок
[q]А есть готовый масив, ато я такой начал составлять и он очень большой начал выходжить, теперь циферками называю вообще[/q]
Мне тоже интересно. Наверняка что-то такое есть.

[q]А ü надо заменять не на -, а на u[/q]
Пока что не реально. БД очень большая и под все случаи явно такую БД не сделать.
 

chisto_tolyan

Враг народа
2 AlexeyPHP:
а не проще составить список разрешеных символов, и все остальные заменять?типа:
$str=preg_replace("|[^a-zA-Z0-9]|","-",$str);
 

kruglov

Новичок
Пока что не реально. БД очень большая и под все случаи явно такую БД не сделать.
Под какие "все случаи"? Проблема составить массив всех 50 "умляутов" и соответствующих им "нормальных" букв, чтоб пропускать через strtr? Скажите прямо - лень часик посидеть, а то "не реально"...
 

AlexeyPHP

Новичок
Под какие "все случаи"? Проблема составить массив всех 50 "умляутов" и соответствующих им "нормальных" букв, чтоб пропускать через strtr? Скажите прямо - лень часик посидеть, а то "не реально"...
В БД ~70000 строк. Там помимо европейских символов чего только не встречается. Азиатские проскакивают, есть просто ошибочные символы. Я же говорю - не реально сделать.
 

kruglov

Новичок
Ну, если там иероглифы, то если 東京 заменится на --, 北京 тоже заменится на --. И 서울 тоже.

В результате вы Токио от Пекина и Сеула не отличите.
 

kruglov

Новичок
Что я вас уговариваю... Хотите вместо Кёльна - K-ln - да на здоровье...
 
Сверху