fork(7) download
  1. /*Дан неграмотно написанный текст, состоящий из нескольких предложений на русском языке. Ошибки заключаются в
  2. неправильной расстановке пробелов и отсутствии заглавных букв. Исправь текст так, чтобы все предложения в нем начинались
  3. с большой буквы, а после знаков запятая, точка, точка с запятой, двоеточие, восклицательный и вопросительный знак стоял
  4. ровно один пробел (а перед ними — ни одного). Составные знаки вроде многоточия или 2 вопросительных знаков подряд
  5. должны сохраняться.*/
  6. <?php
  7. function upFirstLetter($text){
  8. $text = trim($text);
  9. return mb_strtoupper(mb_substr($text, 0, 1)) . mb_substr($text, 1);
  10. }
  11. //mb_internal_encoding('utf-8');
  12. $text = <<< EOF
  13. много их в Петербурге,молоденьких дур,сегодня в атласе да бархате,а завтра , поглядишь , метут улицу вместе с голью кабацкою...в
  14. самом деле ,что было бы с нами ,если бы вместо общеудобного правила:чин чина почитай , ввелось в употребление другое,например:ум ума почитай?какие возникли бы споры!
  15. EOF;
  16.  
  17. $sentences = preg_split('/(?<=[?!.])/u', $text, -1, PREG_SPLIT_NO_EMPTY);
  18. $fixedString = [];
  19.  
  20. foreach ($sentences as $sentence){
  21. $fixed = upFirstLetter($sentence);
  22. $fixed = preg_replace("/\s+([,:])/", "$1", $fixed);
  23. $fixed = preg_replace("/([,:])\s*/", "$1 ", $fixed);
  24. // $fixed = preg_replace("/([.!?])\s*(\w)/u", "$1 $2", $fixed);
  25. $fixedString[] = $fixed;
  26. }
  27.  
  28. echo implode(" ", $fixedString);
  29. ?>
Runtime error #stdin #stdout #stderr 0s 82624KB
stdin
Standard input is empty
stdout
/*Дан неграмотно написанный текст, состоящий из нескольких предложений на русском языке. Ошибки заключаются в
неправильной расстановке пробелов и отсутствии заглавных букв. Исправь текст так, чтобы все предложения в нем начинались
с большой буквы, а после знаков запятая, точка, точка с запятой, двоеточие, восклицательный и вопросительный знак стоял
ровно один пробел (а перед ними — ни одного). Составные знаки вроде многоточия или 2 вопросительных знаков подряд
должны сохраняться.*/
stderr
PHP Fatal error:  Uncaught Error: Call to undefined function mb_strtoupper() in /home/0741mE/prog.php:9
Stack trace:
#0 /home/0741mE/prog.php(22): upFirstLetter('\xD0\xBC\xD0\xBD\xD0\xBE\xD0\xB3\xD0\xBE \xD0\xB8\xD1\x85...')
#1 {main}
  thrown in /home/0741mE/prog.php on line 9