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. $s = mb_substr($text, 0, 1);
  12. $s = mb_strtoupper($s);
  13. $text = mb_substr($text, 1);
  14. $text = $s . $text;
  15. return $text;
  16. }
  17.  
  18. /* исправляет текст */
  19. function fixText($text) {
  20. $regexp1 = "/([.!?])/ui";
  21. $sentences = preg_split($regexp1, $text, 0, PREG_SPLIT_NO_EMPTY
  22. |PREG_SPLIT_DELIM_CAPTURE);
  23. foreach ($sentences as $key => &$value) {
  24. $value = trim($value);
  25. $value = makeFirstLetterUppercase($value);
  26. if ($key % 2 == 1) {
  27. $value .= " ";
  28. }
  29. }
  30. unset($value);
  31. $newtext = implode("", $sentences);
  32.  
  33. $regexp2 = "/([,;])/ui";
  34. $phrases = preg_split($regexp2, $newtext, 0, PREG_SPLIT_NO_EMPTY
  35. |PREG_SPLIT_DELIM_CAPTURE);
  36. foreach ($phrases as $key => &$value) {
  37. $value = trim($value);
  38. if ($key % 2 == 1) {
  39. $value .= " ";
  40. }
  41. }
  42. unset($value);
  43.  
  44. $result = implode("", $phrases);
  45. $result = trim($result);
  46. return $result;
  47. }
  48.  
  49. $result = fixText($text);
  50. echo "{$result}\n";
Success #stdin #stdout 0.02s 24192KB
stdin
Standard input is empty
stdout
Ну что. Не смотрел еще black mesa. Я собирался скачать, но все как-то некогда было.