Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проверка символов строки
Форумы портала PHP.SU » » Вопросы новичков » Проверка символов строки

Страниц (1): [1]
 

1. bugmenot - 16 Июля, 2016 - 08:34:45 - перейти к сообщению
Подскажите пожалуйста, как сделать следующее: есть строка 4 символа.
Первые 2 символа должны быть цифрами, второе два - русские буквы в верхнем регистре.

Если это условие не выполняется для символа - заменить символ на случайный, остальные не тронув.

Спасибо.
2. Строитель - 16 Июля, 2016 - 14:32:12 - перейти к сообщению
bugmenot пишет:
Если это условие не выполняется для символа
Для какого конкретно символа из четырёх?
bugmenot пишет:
заменить символ на случайный
Опять же, на случайный буквенный, числовой?
3. bugmenot - 16 Июля, 2016 - 23:02:01 - перейти к сообщению
Должно быть например 11АА.
Если любой из символов не тот - менять на случайный соответствующий.
4. Строитель - 16 Июля, 2016 - 23:36:15 - перейти к сообщению
bugmenot пишет:
Должно быть например 11АА.
Если любой из символов не тот - менять на случайный соответствующий.
Попробуйте так
PHP:
скопировать код в буфер обмена
  1. $letrs = ['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё',
  2.     'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н',
  3.     'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х',
  4.     'Ц', 'Ч', 'Ш', 'Щ', 'Э', 'Ю', 'Я'
  5. ];
  6.  
  7. $numbs = range(0, 9);
  8.  
  9. $input = '11АА';
  10.  
  11. for ($i = 0; $i < 4; $i++) {
  12.     $letr = mb_substr($input, $i, 1, 'UTF-8');
  13.     if ($i < 2 && !is_numeric($letr)) {
  14.         $input = preg_replace('~'. $letr .'~', $numbs[array_rand($numbs)], $input, 1);
  15.     }
  16.     if ($i >= 2 && is_numeric($letr) || mb_strtoupper($letr, 'UTF-8') != $letr) {
  17.         $input = preg_replace('~'. $letr .'~', $letrs[array_rand($letrs)], $input, 1);
  18.     }
  19. }
  20.  
  21. echo $input;

 

Powered by ExBB FM 1.0 RC1