<?php
 
error_reporting(-1);
mb_internal_encoding('utf-8');
 
$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
//$text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
//$text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
 
/* Делает первую букву предложения заглавной */
function makeFirstletterUppercase(&$parts) {
    $letters = mb_substr($parts, 0, 1); //выделяем первую букву
    $upLetters = mb_strtoupper($letters); //переводим ее в верхний регистр
    $parts = mb_substr($parts, 1); //вделяем предложение кроме первой буквы
    $parts = $upLetters . $parts; //"склеиваем" результат
}
 
/* Делает Йода-style текст */
function makeYodaStyleText($text) {
    $i = 0; //переменная для массива
    $arr = array(); //пустой массив
    $regexp = '/[.!?]/'; //регулярка для разбивки текста на предложения
    $parts = preg_split($regexp, $text, 0, PREG_SPLIT_NO_EMPTY); //разбиваем текст на предложения
    foreach ($parts as &$value) { //пошли по массиву предложений - делим предложения на слова
    	$words = explode(" ", $value); //разбиваем слова пробелами
    	krsort($words); //сортируем массив из слов по значениям в обратном порядке
    	$newParts = implode(" ", $words); //объединяем слова в предложения
    	$newParts = mb_strtolower($newParts); //все буквы в нижний регистр
    	$newParts = trim($newParts); //удаляем пробелы в каждом предложении
    	$newParts = str_replace(",", "", $newParts); //убираем запятые
    	$arr[$i] = $newParts; //составляем новый массив из предложений
    	//Так как ниже нельзя делать?
    	$i++; //увеличиваем счетчик массива
    	array_walk($arr, 'makeFirstLetterUppercase'); //применяем функцию Заглавной буквы к массиву предложений
    }
    $result = implode(". ", $arr); //объединяем массив в строку, ставим точки
    $result = $result . "."; //добавляем точку в конце (коряво?)
    return $result;
}
 
$yodaText = makeYodaStyleText($text);
echo "Йода говорит: {$yodaText}\n";