<?php

/**
 * 28.04.2015 (9:45)
 * Shift.php
 * PhpStorm
 */

error_reporting(-1);
mb_internal_encoding('utf-8');
header("Content-Type: text/plain; charset=utf-8");

// $sentence = "ну что.      не смотрел еще black mesa.я собирался скачать  ,но все как-то некогда было. Но, все OK";
$sentence = "roses are red,and violets are blue.whatever you do i'll keep it for you.";
// $sentence = "привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница.";

/* Делает первую букву в строке заглавной */
function makeFirstLetterUppercase($text)
{
    $firstLetter = mb_substr($text, 0, 1);
    $firstLetter = mb_strtoupper($firstLetter);
    $otherLetters = mb_substr($text, 1);
    $text = $firstLetter . $otherLetters;
    return $text;
}

/* исправляет текст */
function fixText($text)
{
    $result = '';
    $regexp = '![.]!u';
    $regexpRemoveSpace = '/(\s+[,!\.\?]|[,!\.\?][^\s])/u';
    $parts = preg_split($regexp, $text, 0, PREG_SPLIT_NO_EMPTY);
    foreach ($parts as $key => $sentence) {
        $sentence = trim($sentence);
        $sentence = makeFirstLetterUppercase($sentence);
        if ($key > 0) {
            $result = $result . ". " . $sentence;
        } else {
            $result .= $sentence;
        }
    }
    $result = preg_replace($regexpRemoveSpace, ', ', $result);
    return $result . ".";
}

$result = fixText($sentence);

echo "{$result}\n";
