<?php
error_reporting(-1);
mb_internal_encoding('utf-8');
$text = "много их в Петербурге,молоденьких дур,сегодня в атласе да бархате,а завтра , поглядишь , метут улицу вместе с голью кабацкою...в самом деле ,что было бы с нами ,если бы вместо общеудобного правила:чин чина почитай , ввелось в употребление другое,например:ум ума почитай?какие возникли бы споры!";
// Для тестов
// $text = 'roses are red,and violets are blue.whatever you do ill keep it for you.';
//$text = 'привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница.';
/* Делает первую букву в строке заглавной */
function makeFirstLetterUppercase($part) {
return mb_strtoupper(mb_substr($part, 0, 1)).mb_substr($part, 1);
}
/* исправляет текст */
function fixText($part) {
return preg_replace('/[ ]*([,.;:!?]{1,})[ ]*/ui', '$1 ', $part);
}
$parts = preg_split('/(?<=[.!?])+[ ]*(?=\\w)/ui', $text);
foreach($parts as &$value){
$value = makeFirstLetterUppercase( $value);
$value = fixText( $value);
}
$text = implode("", $parts);
echo $text;