<?php

error_reporting(-1);
mb_internal_encoding('utf-8');

$text = "много их в Петербурге,молоденьких дур,сегодня в атласе да бархате,
        а завтра , поглядишь , метут улицу вместе с голью кабацкою...в самом деле 
        ,что было бы с нами ,если бы вместо общеудобного правила:чин чина почитай , 
        ввелось в употребление другое,например:ум ума почитай???какие возникли бы споры!!!";

function makeFirstLetterUppercase($text) {
    $allText = [];
    $splitText = preg_split("/(?<=[.!?](?![.!?]))/u", $text, 0, PREG_SPLIT_NO_EMPTY);
    foreach ($splitText as $texts) {
        $upper = mb_strtoupper(mb_substr($texts, 0, 1)) . mb_substr($texts, 1, null);
        array_push($allText, $upper);
    }

    $complete = implode(" ", $allText);
    return $complete;
}

function fixtext($text) { //исправляет текст
    $regexp = "/\s*([,:]{1})\s*/u";
    $replace = preg_replace($regexp, "$1  ", $text);
    return $replace;
}

$first = makeFirstLetterUppercase($text);
$second = fixtext($first);

echo $second;