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