<?php

error_reporting(-1);
mb_internal_encoding('utf-8');

$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
// $text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
// $text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
function makeFirstletterUppercase($text, $arrayFilledWithSentences, $cutTheText) {
	$cleanAndUppercase = array();
	$arrayFilledWithSentences;
    foreach ($arrayFilledWithSentences as $keys => $values) {
        $findTheFirstLetter = mb_substr($values, 0, 1);
        $cutTheFirstLetter = mb_substr($values, 1);
        $upTheFirstLetter = mb_strtoupper($findTheFirstLetter);
        $makeTheRightSentences = $upTheFirstLetter. $cutTheFirstLetter;
        array_push($cleanAndUppercase, $makeTheRightSentences);
    }
    $theReadySentences = implode('. ', $cleanAndUppercase);
    return $theReadySentences;
}
	
function makeYodaStyleText($text) {
    $cleanTheText = preg_replace('/[,;]/ui', '', $text);
    $undercasedAndCleanedText = mb_strtolower($cleanTheText);
    $cutTheText = preg_split('/[.!?]\\s?/ui', $undercasedAndCleanedText, 0, PREG_SPLIT_NO_EMPTY);
    $arrayFilledWithSentences = array();
        foreach ($cutTheText as $keys => $values) {
            $cutTheTextToWords = preg_split('/ /u', $values);
            $reverseWordsInSentences = array_reverse($cutTheTextToWords);
            $implodeReversedWordsInSentences = implode(' ', $reverseWordsInSentences);
            array_push($arrayFilledWithSentences, $implodeReversedWordsInSentences);
            $theReadySentences = makeFirstletterUppercase($text, $arrayFilledWithSentences, $cutTheText);
        }
   return $theReadySentences;
}	
$yodaText = makeYodaStyleText($text);
echo "Йода говорит: {$yodaText}.\n";

?>
