<?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 fixText($text) {
    $regexp = array();
    $regexp[0] = '/[ ]*[,][ ]*/u';
    $regexp[1] = '/[ ]*[!][ ]*/u';
    $regexp[2] = '/[ ]*[?][ ]*/u';
    $regexp[3] = '/[ ]*[.][ ]*/u';
    
    $replacements = array();
    $replacements[0] = ', ';
    $replacements[1] = '! ';
    $replacements[2] = '? ';
    $replacements[3] = '. ';
    
    $text = preg_replace($regexp, $replacements, $text);
    
    return($text);
}

$text = fixText($text);

//делает первую букву предложения заглавной;
$offers = preg_split('/(?<=[.?!])[ ]/u', $text);
foreach($offers as &$sentence) {
	$sentence =  mb_strtoupper(mb_substr($sentence, 0, 1)).mb_substr($sentence, 1, mb_strlen($sentence));
}

$text = implode(" ", $offers);
echo $text;


 