<?php

$subject = 'и что ты еще расскажешь,блинблинский.а что дальше?мм?ну и что .';
$rules = [
    '/(\,|\.|\?|\!)([^\s])/' => '$1 $2',
    '/([\s])(\,|\.|\?|\!)/' => '$2',
];

function replace($subject, array $rules): string
{
    foreach ($rules as $pattern => $replacement) {
        $subject = preg_replace($pattern, $replacement, $subject);
    }

    return $subject;
}

echo replace($subject, $rules);