Нормализовать регистр в строках, да на php?

Привет, комрады!

Разрешите без долгого вступления, ситуация у нас следующая:
Имеются внешние источники данных, от которых прилетает разного рода информация. Даты, числа, объекты и прочую нечисть мы с легкостью разбираем, но вот как только доходит дело до строк.. Тут интереснее.
Тут несколько кругов ада. Первый - кодировки. Второй - спецсимволы и минимальная нормализация. Третий - это кириллица и.. И возникла задача по нормализации регистра строк. Сейчас на примере поясню, а если ты знаешь в какую именно сторону копнуть - то направлению буду признателен.

Итак, каждая строка - это вход, а через дефис - это то, что надо бы получить на выходе.

ПРИВЕТ МИР. - Привет мир.
привет мир - Привет мир
ПРИВЕТ МИР. Я ДОМА - Привет мир. Я дома
ЛЮБЛЮ Г.САНКТ-ПЕТЕРБУРГ - Люблю г. Санкт-Петербург
в связи с пост. от 12.12.2048 - В связи с пост. от 12.12.2048
ПОПАЛ Я ОДНАЖДЫ В ЯНАО - Попал я однажды в ЯНАО
система рхбз для мл.с-та мутко - Система РХБЗ для мл. с-та Мутко // На грани фантастики


Как, куда бы глянуть, чтоб не городить свой super_puper_case_ai_changer_by_vasya.php?
  • Вопрос задан
  • 205 просмотров
Решения вопроса 1
0lorin
@0lorin
программист
Стандартными средствами — вряд ли. Надо либу искать, мне кажется, должны быть. Что-нибудь типа Stringy (не пользовался) и от неё уже доплясывать ближе к идеалу.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Stalker_RED
@Stalker_RED
На случай, если таки решите самодельничать, вот вам abbr.ru.
Ответ написан
profesor08
@profesor08 Куратор тега PHP
Словарь имен, фамилий, названий для слов, которые должны быть с большой буквы всегда. С аббревиатурами все сложнее, так как их овердофига, но тут можно схитрить, причем очень конкретно. Нужен какой-то набор аббревиатур, если проверяемого слова там нет, то стоит проверить по обычному словарю, если оно есть, то это обыкновенное слово, а если нет, то предположить что это аббревиатура. Т.е все неизвестные комбинации букв считать аббревиатурами.
Ответ написан
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
php.net/manual/ru/function.ucfirst.php + несколько функций которые там рядом
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы