fork download
  1. <?php
  2.  
  3.  
  4. $text = "ну что?! не смотрел еще black mesa.я собирался скачать ,но все как-то некогда было.";
  5. // Для тестов
  6. //$text = "roses are red,and violets are blue.whatever you do i'll keep it for you.";
  7. //$text = 'привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница.';
  8.  
  9. /* Делает первую букву в строке заглавной */
  10. function makeFirstLetterUppercase($text) {
  11. $firstLetter = mb_substr($text, 0, 1);
  12. $firstLetter = mb_strtoupper($firstLetter);
  13.  
  14. $text = preg_replace('/^.(.*)/u', $firstLetter.'$1', $text);
  15.  
  16. return $text;
  17. }
  18.  
  19. /* исправляет текст */
  20. function fixText($text) {
  21. $sentences = preg_split('/[.?!]+/', $text, -1, PREG_SPLIT_NO_EMPTY);
  22. $punctuationMarks = array();
  23. preg_match_all('/[.?!]+/u', $text, $punctuationMarks);
  24. $newText = "";
  25.  
  26. foreach($sentences as $i => $sentence){
  27. $sentence = trim($sentence);
  28. $sentence = makeFirstLetterUppercase($sentence);
  29. $sentence = preg_replace('/\s*([,:;])(\S+)/u', '$1 $2', $sentence);
  30. $newText .= $sentence.$punctuationMarks[0][$i]." ";
  31. }
  32.  
  33. return $newText;
  34. }
  35.  
  36. $result = fixText($text);
  37. echo "{$result}";
Success #stdin #stdout 0.02s 52472KB
stdin
Standard input is empty
stdout
Ну что?! Не смотрел еще black mesa. Я собирался скачать, но все как-то некогда было.