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

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

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

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


Каким образом можно это сделать? Спасибо!
  • Вопрос задан
  • 2469 просмотров
Пригласить эксперта
Ответы на вопрос 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()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы