fork download
  1. <?php
  2.  
  3. function printBytes($text)
  4. {
  5. $hex = bin2hex($text);
  6. $bytes = str_split($hex, 2);
  7. return implode(" ", $bytes);
  8. }
  9.  
  10. $text = 'Пожалуйста,никогда сделал зделал что ли чтоли что-ли не переходите по адресу а если вам дорог, а ваш рассудок!зааходите ложить лучше на иметь ввиду имел ввиду но имело пожыво шыроки';
  11.  
  12. echo $text;
  13.  
  14. $arrayOfRegexps = [
  15. '/\S+(,|\.|;|:|\\?|!)[а-Я]+/' => "После точки, запятой, двоеточия, точки с запятой, восклицательного и вопросительного знаков нужно ставить пробел.",
  16. '/(И|и)ме(л(а|о|и)?|е(те?|шь|м)|ю(т|щ(ий|ая))?|й(те)?|ть)\sввиду/' => "«Ввиду» пишется слитно тогда, когда его можно заменить предлогом «из-за».",
  17. '/\S+(\.|\\?|!)(\s)?[а-я]+/' => "Предложение должно начинаться с большой буквы.",
  18. '/\S*(ж|ш)ы\S*/' => "«жи» «ши» пиши с «и».",
  19. '/(что|чуть|вряд)-?ли/' => "Частица «ли» всегда отделяется пробелом.",
  20. '/[^,]\s(а|но)\s\S*/' => "Перед союзами «а» и «но» нужно ставить запятую.",
  21. '/\sздел\S+/' => "Приставки «з» не существует.",
  22. '/\sлож(и(ть|л(и|а)?)?|ат)(\s|\.)/' => "Такого слова не существует, есть слово «класть»",
  23. ];
  24.  
  25. $matches = [];
  26. $errorsCounter = 0;
  27.  
  28. foreach ($arrayOfRegexps as $regexp => $errorDescription)
  29. {
  30. $errorsCounter += preg_match_all($regexp, $text, $matches);
  31.  
  32. foreach ($matches[0] as $value)
  33. {
  34. echo "\nЗдесь ошибка: " . printBytes($value) . "\nОписание: " . $errorDescription . "\n";
  35. }
  36. }
  37.  
  38. echo "\nВсего найдено ошибок: {$errorsCounter}\n";
  39.  
Success #stdin #stdout 0.02s 52472KB
stdin
Standard input is empty
stdout
Пожалуйста,никогда сделал зделал что ли чтоли что-ли не переходите по адресу а если вам дорог, а ваш рассудок!зааходите ложить лучше на  иметь ввиду имел ввиду но имело пожыво шыроки
Здесь ошибка: d0 9f d0 be d0 b6 d0 b0 d0 bb d1 83 d0 b9 d1 81 d1 82 d0 b0 2c d0 bd d0 b8 d0 ba d0 be d0 b3 d0 b4 d0 b0
Описание: После точки, запятой, двоеточия, точки с запятой, восклицательного и вопросительного знаков нужно ставить пробел.

Здесь ошибка: d1 80 d0 b0 d1 81 d1 81 d1 83 d0 b4 d0 be d0 ba 21 d0 b7 d0 b0 d0 b0
Описание: После точки, запятой, двоеточия, точки с запятой, восклицательного и вопросительного знаков нужно ставить пробел.

Здесь ошибка: d0 b8 d0 bc d0 b5 d1 82 d1 8c 20 d0 b2 d0 b2 d0 b8 d0 b4 d1 83
Описание: «Ввиду» пишется слитно тогда, когда его можно заменить предлогом «из-за».

Здесь ошибка: d0 b8 d0 bc d0 b5 d0 bb 20 d0 b2 d0 b2 d0 b8 d0 b4 d1 83
Описание: «Ввиду» пишется слитно тогда, когда его можно заменить предлогом «из-за».

Здесь ошибка: d1 80 d0 b0 d1 81 d1 81 d1 83 d0 b4 d0 be d0 ba 21 d0 b7 d0 b0 d0 b0 d1
Описание: Предложение должно начинаться с большой буквы.

Здесь ошибка: d0 bf d0 be d0 b6 d1 8b d0 b2 d0 be
Описание: «жи» «ши» пиши с «и».

Здесь ошибка: d1 88 d1 8b d1 80 d0 be d0 ba d0 b8
Описание: «жи» «ши» пиши с «и».

Здесь ошибка: d1 87 d1 82 d0 be d0 bb d0 b8
Описание: Частица «ли» всегда отделяется пробелом.

Здесь ошибка: d1 87 d1 82 d0 be 2d d0 bb d0 b8
Описание: Частица «ли» всегда отделяется пробелом.

Здесь ошибка: 83 20 d0 b0 20 d0 b5 d1 81 d0 bb d0 b8
Описание: Перед союзами «а» и «но» нужно ставить запятую.

Здесь ошибка: 83 20 d0 bd d0 be 20 d0 b8 d0 bc d0 b5 d0 bb d0 be
Описание: Перед союзами «а» и «но» нужно ставить запятую.

Здесь ошибка: 20 d0 b7 d0 b4 d0 b5 d0 bb d0 b0 d0 bb
Описание: Приставки «з» не существует.

Здесь ошибка: 20 d0 bb d0 be d0 b6 d0 b8 d1 82 d1 8c 20
Описание: Такого слова не существует, есть слово «класть»

Всего найдено ошибок: 13