<?php
	
	error_reporting(-1);
	mb_internal_encoding('utf-8');
	
	$test = array();
	$test[] = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
	$test[] = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
	$test[] = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
	
	/* Делает первую букву предложения заглавной */
	function makeFirstLetterUppercase($text) {
		    return mb_strtoupper(mb_substr($text, 0, 1)).mb_substr($text, 1);
		}
	
	/* Делает первую букву предложения строчной */
	function makeFirstLetterLowercase($text) {
		    return mb_strtolower(mb_substr($text, 0, 1)).mb_substr($text, 1);
		}
	
	/* Переводит предложение в обратный порядок слов */
	function reverseSentence($text) {
		$words = array();
		preg_match_all('/\\b\\w+\\b/u', $text, $words);
		$words = array_reverse($words[0]);
		$result = implode(' ', $words);
		return $result;
	}
	
	function makeYodaStyleText($text) {
		$sentences = preg_split('/(?<=[?!.;])\\s+(?=\\w)/u', $text);
		$sentences = array_map('makeFirstLetterLowercase', $sentences);
		$sentences = array_map('reverseSentence', $sentences);
		$sentences = array_map('makeFirstLetterUppercase', $sentences);
		$result = implode('. ', $sentences).'.';
		return $result;
	}
	foreach ($test as $text){
		$yodaText = makeYodaStyleText($text);
		echo "Йода говорит: {$yodaText}\n";
	}
	
?>