<?php
 
$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
// Другие варианты для тестов
// $text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
// $text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
 function ReverseText ($text) { // переворачивает слова в предложении, убирает знаки препинания, ставит ! в конце предложеня
	$splitedText = preg_split ("/[\.\?!]+/", $text);
    $dumpLastElement = array_pop($splitedText);
    function trim_value(&$value)
		{
    		$value = trim($value);
		}	
    array_walk($splitedText, 'trim_value');
    foreach ($splitedText as  $sentance) {
    	$splitedSentance = explode (" ", $sentance);
    	$reversed = array_reverse($splitedSentance);
    	$reversedSentance = implode (" ", $reversed);
    	$reversedText[] = $reversedSentance;
    	array_walk($reversedText, ($reversedText = preg_replace("/[;:,!\?\.]/", "", $reversedText)));
    	array_walk($reversedText, ($reversedText = preg_replace("/$/" , "!", $reversedText )));
    }
    return $reversedText;
 }
  
 $flippedResult = ReverseText($text); 
 function YodaSpeak ($flippedResult) { // делает первую букву предложения заглавной
 	$fixedText = [];
 	foreach ($flippedResult as $value) { 
 	$lowerCase = mb_strtolower($value);
 	$uperCase = mb_strtoupper(mb_substr($lowerCase, 0, 1, 'UTF-8'), 'UTF-8') .
    mb_substr($lowerCase, 1, mb_strlen($lowerCase), 'UTF-8');
    array_push($fixedText, $uperCase);
 	$yodaSpeak = implode(" ", $fixedText);
}
	return $yodaSpeak;
}
$yodaText = YodaSpeak($flippedResult);
echo "{$yodaText}\n";
 
 