<?php
 
error_reporting(-1);
mb_internal_encoding('utf-8');
 
$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
// Другие варианты для тестов
// $text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
// $text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
 
/* Делает первую букву предложения заглавной */
function makeFirstletterUppercase($text) {
$text=trim($text);
return mb_strtoupper(mb_substr($text, 0, 1)).mb_substr($text,1,mb_strlen($text));
}
 
function makeYodaStyleText($text) {
$result = '';
$regexp = "/[.!?;]/u";
$parts = preg_split($regexp,mb_strtolower($text),0,PREG_SPLIT_NO_EMPTY);
foreach($parts as &$value){
$arr = preg_split("/ /",preg_replace("/,/u","",$value),0,PREG_SPLIT_NO_EMPTY);
$arr = array_reverse($arr);
$value = makeFirstletterUppercase(implode(" ",$arr));
}
unset($value);
return implode(". ",$parts).".";
}
 
$yodaText = makeYodaStyleText($text);
echo "Йода говорит: {$yodaText}\n";
 
