<?php


//Yoda sp33k
error_reporting(-1);
mb_internal_encoding('utf-8');

//$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
//Обнаружили нас кажется. Поздно не пока отсюда уходить срочно надо. Скорее же бежим.
// Другие варианты для тестов
// $text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
 $text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";

/* Делает первую букву предложения заглавной */
function makeFirstletterUppercase($text) {
    /* Сделай сам */
    $letters = preg_split("//u", $text,-1,PREG_SPLIT_NO_EMPTY);
	$letters[0] = mb_strtoupper($letters[0]);
	$sentence = implode('',$letters);
    return  $sentence;
}

function makeYodaStyleText($text) {
    
    $result = '';
    
    $regExp = "/[.?!]/u";
   
    $sentences = preg_split($regExp, $text, -1, PREG_SPLIT_NO_EMPTY);
    
    foreach ($sentences as $sentence){

    	$sentence = preg_replace ("/(^ *)|[,;:]/u", "", $sentence);
    	$words = preg_split("/\b/ui", $sentence, -1, PREG_SPLIT_NO_EMPTY);
    	$words[0] = mb_strtolower($words[0]);
    	$reversed = array_reverse($words);
    	$reversed[0] = makeFirstletterUppercase($reversed[0]);
    	$sentence = implode('', $reversed);
    	$sentence .= ". ";
    	$result .= $sentence;
    }
    
    return $result;

    /* Сделай сам */
}

$yodaText = makeYodaStyleText($text);
echo "Йода говорит: {$yodaText}\n";

