PHP как в строке преобразовать слова написанные прописными буквами?

Есть строка PHP в которой некоторые слова написаны прописными буквами.
Нужно преобразовать их в слова написанные строчными.

Пример:
В чащах юга жил бы ЦИТРУС? Да, но ФАЛЬШИВЫЙ ЭКЗЕМПЛЯР!

Нужно преобразовать в:
В чащах юга жил бы цитрус? Да, но фальшивый экземпляр!


Каким образом можно это сделать? Спасибо!
  • Вопрос задан
  • 2452 просмотра
Пригласить эксперта
Ответы на вопрос 4
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
@neolink
$str = 'В чащах юга жил бы ЦИТРУС? Да, но ФАЛЬШИВЫЙ ЭКЗЕМПЛЯР! ТЕст';
$str = preg_replace_callback('#([А-Я]{2,})#u', function ($m) {
    return mb_strtolower($m[0], 'utf-8');
}, $str);
echo $str;
Ответ написан
Комментировать
@SilverSlice
Решение: преобразовать все символы строки в нижний регистр, затем заменить все буквы в начале предложений на заглавные.

$str = 'В чащах юга жил бы ЦИТРУС? Да, но ФАЛЬШИВЫЙ ЭКЗЕМПЛЯР! ЗАГЛАВНОЕ слово в начале.';
mb_internal_encoding('utf-8');
$str = mb_strtolower($str);
$str = mb_strtoupper(mb_substr($str, 0, 1)) . mb_substr($str, 1);
$str = preg_replace_callback('/([.!?])\s*(\w)/u', function ($m) {
    return mb_strtoupper($m[1] . ' ' . $m[2]);
}, $str);
echo $str;
Ответ написан
@iSensetivity
бухгалтер, програміст-самоук
сначала strtolower()
потом ucfirst()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
02 мая 2024, в 23:29
1500 руб./в час
02 мая 2024, в 23:16
7500 руб./за проект
15 апр. 2024, в 22:14
30000 руб./за проект