<?php
error_reporting(-1);
mb_internal_encoding('utf-8');
$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
// Другие варианты для тестов
// $text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
// $text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
//добавляем пробел перед первым словом, для того чтобы первое слово не слипалось при implode
//$text1=" "; $text1.=$text; $text=$text1;
/* Делает первую букву предложения заглавной */
function makeFirstletterUppercase($text)
{
$text = mb_strtoupper(mb_substr($text, 0, 1)) . mb_substr($text, 1, NULL);
return $text;
}
function makeYodaStyleText($text)
{
$text = mb_strtolower($text);
$text = preg_replace('[,]', "", $text);
$text = preg_split('/(?<=[!\?\.])/u', $text, -1, PREG_SPLIT_NO_EMPTY);
echo " дамп : ";
var_dump($text);
$words = " ";
foreach ($text as $word) {
$word = explode(' ', $word);
echo " \n\n ";
echo " дамп word: ";
var_dump($word);
echo " \n\n ";
$word = implode(" ", array_reverse($word));
$word = preg_replace("[!]", "", $word);
$word = preg_replace("[\.]", "", $word);
$word .= ".";
//делаем большой буква первый
$word = makeFirstletterUppercase($word);
//единение текстов
$words .= $word;
echo " дамп реверс word: ";
echo $word;
}
echo "\n финал : ";
echo $words;
return $words;
// $result = '';
/* Сделай сам */
}
$yodaText = makeYodaStyleText($text);
$yodaText = preg_replace('/\s*([,.;:!?])\s*(\w+)/ui', '$1 $2', $yodaText);
echo "\n\nЙода говорит: {$yodaText}\n";
preferences:
61.89 ms | 402 KiB | 5 Q