<?php

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

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

/* Делает первую букву предложения заглавной */
function makeFirstLetterUppercase($text) {
	$array = preg_split("/ *[.!?] */", $text, null, PREG_SPLIT_NO_EMPTY);
	foreach($array as $key => $value){
		$firstLetter = mb_strtoupper(mb_substr($value, 0, 1));
		$replace = " ".$firstLetter.mb_substr($value, 1);
		$text = preg_replace("/ *$value */u", $replace, $text);
	}
	return ltrim($text);
}

function makeYodaStyleText($text) {
	$end = "";
	$result = "";
    $text = mb_strtolower($text);
    $sentences = preg_split("/ *[.!?] */", $text, null, PREG_SPLIT_NO_EMPTY);
    foreach($sentences as $key => $sentence){
    	$words = preg_split("/ *[,; ] */", $sentence, null, PREG_SPLIT_NO_EMPTY);
		shuffle($words);
		foreach($words as $key => $word){
			$result = $result." ".$word;
		}
		$end = $end.$result.".";
		unset($result);
    }
    return ltrim($end);
}

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