<?php
error_reporting(-1);
mb_internal_encoding('utf-8');

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

function makeFirstletterUppercase($text) {
	$arr=preg_split('//u', $text, null, PREG_SPLIT_NO_EMPTY);
	$i=0;
	while(true)
	{
		if ($arr[$i]!=" ") {
			$letter1=mb_strtoupper($arr[$i]);
			$arr[$i]=$letter1;
			break;
		}
		$i++;
	}
	$res=implode('',$arr);
    return  $res;  
}

function makeYodaStyleText($text) {
	$ntext=preg_replace("/\,/ui","",$text);
    $parts=preg_split("/(?<=[\.!\?;])/ui", $ntext, -1, PREG_SPLIT_NO_EMPTY);
    $result = '';
    foreach ($parts as $key=>$value){
    	$ntext=preg_replace("/[!\.\?;]/ui","",$value);
    	$arr=explode(" ", $ntext);
    	if ($arr[0]=="") array_shift($arr);
    	$revarr=array_reverse($arr);
    	$sentence=implode(" ",$revarr);
    	$sentence=mb_strtolower($sentence);
		$final=makeFirstletterUppercase($sentence);
		$final.=". ";
    	$result.=$final;
    }
    
    return $result;
}

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

