<?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 ,не понимаю,в чем между ними разница.';
 $text = <<<EOF
много их в Петербурге,молоденьких дур,сегодня в атласе да бархате,а завтра , поглядишь , метут улицу вместе с голью кабацкою...в самом деле ,что было бы с нами ,если бы вместо общеудобного правила:чин чина почитай , ввелось в употребление другое,например:ум ума почитай?какие возникли бы споры!
EOF
;
/* Делает первую букву в строке заглавной */

function makeFirstLetterUppercase($text) {
	$regexp = "/(?<=[.(...)?!])/u";
	$mass1 = preg_split($regexp, $text, 0, PREG_SPLIT_NO_EMPTY);
	for ($i = 0; $i < count($mass1); $i++) {
	    
		$regexp0 = "/^ +/u";
		$mass1 = preg_replace($regexp0, "", $mass1);
		
		$regexp1 = "/( *)([:;,])( *)/u";
		$mass1 = preg_replace($regexp1, "$2 ", $mass1);
		$regexp2 = "/( +)/u";
		$mass1 = preg_replace($regexp2, " ", $mass1);
		
	   $regexp3 = "/([.])( )$/u";
       $mass1 = preg_replace($regexp3, "$1", $mass1);
	
	    $substr = mb_substr($mass1[$i], 0, 1);
		$substr = mb_strtoupper($substr);
		$h = mb_strlen($mass1[$i]);
		$substr1 = mb_substr($mass1[$i], 1, $h);
		$mass1[$i] = $substr."".$substr1;
	
	}
    
	$text = implode(" ", $mass1);

	return $text;

}



$letter = makeFirstLetterUppercase($text);
echo $letter;
