<?php
error_reporting(-1);
mb_internal_encoding('utf-8');
$text = " ну что.     не смотрел еще 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) {
    $suggestions = preg_split("/[.!?]/u", $text, 0, PREG_SPLIT_NO_EMPTY);
    foreach ($suggestions as $key => $value) {
        $value = trim($value);
        $first = mb_strtoupper(mb_substr($value, 0, 1));
        $last = mb_substr($value, 1);
        $suggestions[$key] = $first . $last . ".";
    }
    return implode(" ", $suggestions);
}

/* исправляет текст */
function fixText($text) {
    $text = preg_replace("/(\\s+)?([,.!?])(\\s+)?/u", "$2 ", $text);
    $text = trim($text);
    return makeFirstLetterUppercase($text);
}

$result = fixText($text);
echo "{$result}\n";
$result = fixText($text2);
echo "{$result}\n";
$result = fixText($text3);
echo "{$result}\n";