<?php
error_reporting(-1);
mb_internal_encoding('utf-8');
$text="много их в Петербурге,молоденьких дур,сегодня в атласе да бархате,а завтра , поглядишь , метут улицу вместе с голью кабацкою...в самом деле ,что было бы с нами ,если бы вместо общеудобного правила:чин чина почитай , ввелось в употребление другое,например:ум ума почитай?какие возникли бы споры!";
/*Создаем регулярное выражение для поиска окончаний предложения*/
$regexp="/(?<=[.!?])\\s?(?=[а-яё])/ui";
/*Создаем пустой массив, в который будем вносить отдельные предложения $text*/
$parts=[];
/*Забиваем в массив $parts $text, разделенный по правилу $regexp*/
$parts=preg_split($regexp,$text);
/*Создаем пустой массив, в который внесем отформатированные предложения (с заглавными первыми буквами)*/
$partsFormated=[];
/*Создаем пустую переменную, в которой позднее будем "склеивать" текст*/
$textWithUpFirstLetter=NULL;
/*Перебираем массив $parts в переменную $el*/
foreach ($parts as $el) {
/*Извлекаем первую букву из переменной $el в переменную $firstLetter*/
$firstLetter=mb_substr($el,0,1);
/*Переводим текст, содержащийся в $firstLetter, в верхний регистр*/
$firstLetter=mb_strtoupper($firstLetter);
/*Присваиваем переменной $el значение элемента $el без 0-го символа (Удаляем первую букву, содержащуюся в строке)*/
$el=mb_substr($el,1);
/*Присваиваем переменной $el результат "склеивания" $firstLetter и $el*/
$el=$firstLetter . $el;
/*Генерируем текст. Он будет пополняться после переборки каждого из символов массива*/
$textWithUpFirstLetter=$textWithUpFirstLetter. $el;
}
/*Создаем регулярное выражение для поиска знаков препинания. Т.к. нам нужно сохранить многоточия, тройные вопросительные и восклицательные знаки, используем (?<=[а-яё.,?!]) в начале и (?=[а-яё]) в конце*/
$regexpSigns="/(?<=[а-яё.,?!])\\s?([.,!?:;])\\s?(?=[а-яё])/ui";
/*Присваиваем переменной $textFormated результат замены по шаблону $regexpSigns на "$1 " в переменной $textWithUpFirstLetter*/
$textFormated=preg_replace($regexpSigns, "$1 ", $textWithUpFirstLetter);
echo ($textFormated);
Много их в Петербурге, молоденьких дур, сегодня в атласе да бархате, а завтра, поглядишь, метут улицу вместе с голью кабацкою... В самом деле, что было бы с нами, если бы вместо общеудобного правила: чин чина почитай, ввелось в употребление другое, например: ум ума почитай? Какие возникли бы споры!