<?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) {
	$parts=preg_split("/(?<=\.)/ui", $text, -1, PREG_SPLIT_NO_EMPTY);
	$str="";
	foreach($parts as $key => $value){
	$arr=preg_split('//u', $value, null, PREG_SPLIT_NO_EMPTY);
	//$i=0;
	$i=0;
	while(true)
	{
		if ($arr[$i]!=" ") {
			$letter1=mb_strtoupper($arr[$i]);
			$arr[$i]=$letter1;
			break;
		}
		$i++;
	}
	$res=implode('',$arr);
	$str.=$res;	
	}
    return  $str;  
}

/* исправляет текст */
function fixText($text) {
	$result = makeFirstLetterUppercase($text);
	$res=preg_replace( '/[\s]*(\.|,)[\s]*/', '$1 ', $result);
    return $res; 
}
$result = fixText($text);
echo "{$result}\n";

