<?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[0] = mb_strtoupper($text[0]);
	return $text;
}
 
/* исправляет текст */
function fixText($text) 
{
	$result = preg_split('/([.!?])/u', $text, 0, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
	foreach($result as &$sentence)
	{
		$sentence = trim($sentence);
		$sentence = makeFirstLetterUppercase($sentence);
	}
	//var_dump($result);
	$text = implode('', $result);
	$text = preg_replace('/ *([,:;.!?]) */u',"$1 ", $text);
	return $text;
 
}
 
$result = fixText($text);
echo "\n$result\n";
 