Я пытаюсь определить метод для прописной фамилии; однако, исключая нижний префикс.
Пример имен и их преобразование:
- MacArthur → MacARTHUR
- McDavid → McDAVID
- LeBlanc → LeBLANC
- Макинтайр → McINTYRE
- de Wit → de WIT
Есть также имена, которые будут содержать фамилии, которые должны быть полностью заглавные, поэтому простой функции для идентификации префикса, такого как strchr()
, будет недостаточно:
- Macmaster → MACMASTER
- Macintosh → MACINTOSH
Функция PHP mb_strtoupper()
не подходит, так как она набирает всю строку. Точно так же strtoupper()
не подходит, а также теряет акценты на акцентированных именах.
Есть несколько ответов вокруг SO, которые частично отвечают на вопрос, например: Капитализация с использованием PHP
Однако общий дефицит предполагает, что все имена с фамилией как Mac
сопровождаются капиталом.
Имена правильно заглавные буквы в базе данных, поэтому мы можем предположить, что имя написано как Macarthur правильно, или MacArthur является правильным для другого человека.