<?php
//*
//дан текст из нескольких предложений, предложение состоит из русских слов, разделенных пробелами. 
//Написать программу, переставляющую слова в предложениях в обратном порядке. 
//Знаки препинания в конце предложений (точка, восклицательный знак) можно не сохранять.
//*

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

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

/* Делает первую букву предложения заглавной */
function makeFirstletterUppercase($text) {
	$result = mb_strtoupper(mb_substr($text, 0, 1)) . mb_substr($text, 1);
    return $result;
}

/* Делает первую букву предложения строчной */
function makeFirstletterLowercase($text) {
	$result = mb_strtolower(mb_substr($text, 0, 1)) . mb_substr($text, 1);
    return $result;
}

/* Переворачивает предложение задом на перед */
function reverseSentence($sentence) {
	$words = preg_split('/[ ]/', $sentence,  -1, PREG_SPLIT_NO_EMPTY);
	$words[0] = makeFirstletterLowercase($words[0]);	
	$words[count($words)-1] = makeFirstletterUppercase($words[count($words)-1]);
	$result = implode(' ',  array_reverse($words));
	return $result;
}

function makeYodaStyleText($text) {
    
    $result = '';
    $text = preg_replace('/,/', '', $text);
    $sentences = preg_split('/[!.?]/', $text, -1, PREG_SPLIT_NO_EMPTY);
    foreach ($sentences as $id => $sentence) {
    	$sentence = reverseSentence($sentence);
    	$sentence = implode(' ', explode(' ', $sentence));
    	$result .= $sentence . '. ';
    }

    return $result;
}

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

