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