<?php

error_reporting(-1);
mb_internal_encoding('utf-8');

//$text = "   ну что.      не смотрел еще black mesa.я собирался скачать  ,но все как-то некогда было.";
// Для тестов
 //$text = "roses are red,and violets are blue.whatever you do i'll keep it for you.";
 $text = 'привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница.';

/* Делает первую букву в строке заглавной */
function makeFirstLetterUppercase($text) {
	$text = ltrim ($text);
	$text =  mb_strtoupper(mb_substr($text, 0, 1)) . mb_substr($text, 1);
    return $text; 
}
/* Корректирует пробелы вокруг символа (,) */
function correctSpacesAroundChar($text, $char) {

	$parts_of_sentence = explode($char, $text);
	
	$text = '';
	foreach ($parts_of_sentence as $part) {
		$part = ltrim($part);
		$part = rtrim($part);
		$text .= $part . ', ';
	}
	$text = mb_substr($text, 0, mb_strlen($text)-2);
	return $text;
}

/* исправляет текст */
function fixText($text){
  $sentences = preg_split("/([^!\?\.?]+[!\?\.?]+)/", $text, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
  foreach ($sentences as $id => $sentence ) {
  	$sentences[$id] = makeFirstLetterUppercase($sentence);
  	$sentences[$id] = correctSpacesAroundChar($sentences[$id], ',');
  }
  $text = implode(' ', $sentences);
  return $text;
}

$result = fixText($text);

echo "{$result}\n";
