<?php

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

$text = "ну что.      не смотрел еще black mesa.я собирался скачать  ,но все как-то некогда было.";
// Для тестов
$text1 = "roses are red,and violets are blue.whatever you do i'll keep it for you.";
$text2 = 'привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница.';
function makeFirstLetterUppercase($text) {
    $sent = preg_split("/\\./", $text, 0, PREG_SPLIT_NO_EMPTY);
    foreach ($sent as $number => $sentence) {
    	if (mb_substr(0, 1, $sentence) != " ") {
    		$sentence = " ". $sentence;
    	}
    	var_dump($sentence);
    	$newSentence = preg_replace("/\\s?([,!?])\\s?/u", '$1 ', $sentence); //знаки препинания
    	var_dump($newSentence);
    	$newSentence = preg_replace("/\\s{2,}/u", ' ', $sentence); //повторяющийся пробел
    	$firstLeter = mb_strtoupper(mb_substr($newSentence, 1,1));
    	$newSentence = preg_replace("/^ (\\w)/u", " {$firstLeter}", $newSentence);
    	$newText = $newText . $newSentence. ".";
    }
    return $newText;
}
$newText = makeFirstLetterUppercase($text);
echo "{$newText}\n";
$newText = makeFirstLetterUppercase($text1);
echo "{$newText}\n";
$newText = makeFirstLetterUppercase($text2);
echo "{$newText}\n";