<?php

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

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

/* Делает первую букву в строке заглавной */
function makeFirstLetterUppercase($text) {
	$text = preg_replace_callback('/([.]\\s|\\A)([а-яёa-z])/u', 
	                              function($matches){
	                                  $firstLetter = mb_strtoupper($matches[2]);
	                                  $replacement = $matches[1].$firstLetter;
	                                  return $replacement;    
	                              }, 
	                              $text);
    return $text;
}

function fixSpaces($text){
	$text = preg_replace('/([а-яёa-z]+)\\s*([.,;:!?])\\s*([а-яёa-z]+)/ui', '$1$2 $3', $text);
	return $text;
}

/* исправляет текст */
function fixText($text) {
    $fixedText = fixSpaces($text);
    $fixedText = makeFirstLetterUppercase($fixedText);
    return $fixedText;
}

$results[] = fixText($text1);
$results[] = fixText($text2);
$results[] = fixText($text3);

foreach ($results as $result){
	echo "{$result}\n";
}
