<?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) {
    $regexp = "/[.!?]/u";
    $text = preg_split($regexp, $text, 0, PREG_SPLIT_NO_EMPTY);
    $length = count($text);
    for ($i = 0; $i < $length; $i++) {
        $text[$i] = trim($text[$i]);
        $first = mb_strtoupper(mb_substr($text[$i], 0, 1));
        $last = mb_substr($text[$i], 1);
        $text[$i] = $first . $last . ".";
    }
    return implode(" ", $text);
}


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

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