Задать вопрос
@rv9ufz
Кратко о себе

Как детектировать текст капсом на PHP?

Может есть какое-то готовое решение, чтобы проверить текст на предмет написания большей части поста заглавными буквами, чтобы далее приводить к строчным?
Пока нашёлся только вариант проверки всего текста.
  • Вопрос задан
  • 188 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 4
VladimirAndreev
@VladimirAndreev
php web dev
preg_match_all('/[A-Z]/u', $text) > preg_match_all('/[a-z]/u', $text)
Ответ написан
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
$string = 'Любой текст, В ТОМ ЧИСЛЕ КАПСОМ';

$upper = 0;
$lower = 0;

for ($i=0; $i < mb_strlen($string); $i++) {
    $char = mb_substr($string, $i, 1);
    
    if (!is_numeric($char) AND $char != ' ') {
        if (mb_strtolower($char) !== $char) {
            $upper++;
        } else{
            $lower++;
        }
    }
}

if ($upper >= $lower) {
    $string = mb_strtolower($string);
}

echo $string; //любой текст, в том числе капсом
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
preg_replace() + strlen()
Удаляем всё кроме заглавных и считаем процент.
Ответ написан
Комментировать
если проверять весь ли пост в капсе: https://www.php.net/manual/ru/function.ctype-upper.php
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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