<?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 trim_value($value) //функция для удаления пробелов
{
	$value = trim($value);
	return($value);
}
 
function  makeFirstLetterUppercase($parts) { //функция которая делает буквы заглавными
    $letters = mb_substr($parts, 0, 1);
    $upLetters = mb_strtoupper($letters);
    $parts = mb_substr($parts, 1);
    $parts = $upLetters . $parts;
    return $parts;
}
 
function fixText($fixedText) { //фиксит текст регуляркой - правильные пробелы
    $regexp = '/( *)([,.;:])( *)/';
    $fixedText = preg_replace($regexp, '$2 ', $fixedText);
    return $fixedText;
}
$regexp1 = '/[.!?]/';
$parts = preg_split($regexp1, $text, 0, PREG_SPLIT_NO_EMPTY); //разбиваем текст на предложения
$parts = array_map("trim_value", $parts);
$parts = array_map("makeFirstLetterUppercase", $parts);
$newText = implode(". ", $parts); //объединение предложений в строку
$result = fixText($newText);
echo "$result\n";

