Ответы пользователя по тегу PHP
  • Как вывести количество замененных символов в строке?

    ReaverJS
    @ReaverJS
    Ну, как вариант:
    $str = 'Привeт hаbr';
    $words = explode(' ', $str); // Делим строку на слова
    $wrong_chars = 0;
    
    for ($i = 0; $i < count($words); $i++) { // Цикл перебора слов
      
      $chars = preg_split('//u', $words[$i], null, PREG_SPLIT_NO_EMPTY); // Делим слова на буквы
      $ru_len = 0;
      $en_len = 0;
      
      for ($j = 0; $j < count($chars); $j++) { // Цикл перебора букв
          $char_code = mb_ord($chars[$j]);
          
          if ($char_code < 48 || $char_code > 57) {
                  if ($char_code > 1000) $ru_len++; // Определяем язык по char коду
                  else $en_len++;
          }
          
    
        }
      
      if ($ru_len > $en_len) $wrong_chars += $en_len; // Если внутри слова будут буквы на
      else $wrong_chars += $ru_len;                   // другом языке - добавляем их в счетчик
      
      
      echo $words[$i] . '<br>';
      echo 'ru: ' . $ru_len . '<br>';
      echo 'en: ' . $en_len . '<br>';
      
    }
    
    echo 'Wrong chars: ' . $wrong_chars;

    Результат
    Привeт
    ru: 5
    en: 1
    hаbr
    ru: 1
    en: 3
    Wrong chars: 2
    Ответ написан