<?php

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

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

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

function makeYodaStyleText($text) {
	$result = '';
	$text = preg_replace('/[,;]/', '', $text);
	$text = mb_strtolower($text);
	$sentences = preg_split('/[.?!]/ui', $text, -1, PREG_SPLIT_NO_EMPTY);
	//var_dump($sentences);
	foreach($sentences as $sentence) {
		$sentence = trim($sentence);
		$words = preg_split('/\s/', $sentence);
		$words = array_reverse($words);
		$sentence = implode(' ', $words);
		$sentence = makeFirstLetterUppercase($sentence);
		$result = $result . $sentence . ". ";
	}
	return $result;
}

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