<?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 ,не понимаю,в чем между ними разница.';

function trim_value(&$value) //функция для удаления пробелов
{
	$value = trim($value);
}

function  makeFirstLetterUppercase(&$parts) { //функция которая делает буквы заглавными
/* не понял, почему надо писать &перед переменной, взял из мануала */
    $letters = mb_substr($parts, 0, 1);
    $upLetters = mb_strtoupper($letters);
    $parts = mb_substr($parts, 1);
    $parts = $upLetters . $parts;
}

function fixText($fixedText) { //фиксит текст регуляркой - правильные пробелы
    $regexp = '/( *)([,.;:])( *)/';
    $fixedText = preg_replace($regexp, '$2 ', $fixedText);
    return $fixedText;
}

$parts = explode(".", $text); //разбиваем текст на предложения
 /* по идее надо еще разбивать в ? и !, но не понял как можно их в explode запихать */
array_walk($parts, 'trim_value'); //удаление пробелов в начале и конце строк
array_walk($parts, 'makeFirstLetterUppercase'); //замена первых букв предложений на заглавные
$newText = implode(". ", $parts); //объединение предложений в строку
$result = fixText($newText);
echo "$result\n";
 
