<?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) {
$parts = preg_split('/[.|!|?|;][ ]?/ui', $text);
foreach ($parts as &$part) {
$words = preg_split('/[,]?[ ]/', $part);
$words[0] = mb_strtolower($words[0]);
$words = array_reverse($words);
$words[0] = makeFirstletterUppercase($words[0]);
$part = implode(" ", $words);
}
return implode(". ", $parts);
}
$yodaText = makeYodaStyleText($text);
echo "Йода говорит: {$yodaText}\n";
Йода говорит: Обнаружили нас кажется. Поздно не пока отсюда уходить срочно надо. Скорее же бежим.
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Йода говорит: Обнаружили нас кажется. Поздно не пока отсюда уходить срочно надо. Скорее же бежим.