<?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";
- Output for 7.1.25 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
- дамп : array(3) {
[0]=>
string(43) "кажется нас обнаружили!"
[1]=>
string(78) " надо срочно уходить отсюда пока не поздно."
[2]=>
string(30) " бежим же скорее!"
}
дамп word: array(3) {
[0]=>
string(14) "кажется"
[1]=>
string(6) "нас"
[2]=>
string(21) "обнаружили!"
}
дамп реверс word: Обнаружили нас кажется.
дамп word: array(8) {
[0]=>
string(0) ""
[1]=>
string(8) "надо"
[2]=>
string(12) "срочно"
[3]=>
string(14) "уходить"
[4]=>
string(12) "отсюда"
[5]=>
string(8) "пока"
[6]=>
string(4) "не"
[7]=>
string(13) "поздно."
}
дамп реверс word: Поздно не пока отсюда уходить срочно надо .
дамп word: array(4) {
[0]=>
string(0) ""
[1]=>
string(10) "бежим"
[2]=>
string(4) "же"
[3]=>
string(13) "скорее!"
}
дамп реверс word: Скорее же бежим .
финал : Обнаружили нас кажется.Поздно не пока отсюда уходить срочно надо .Скорее же бежим .
Йода говорит: Обнаружили нас кажется. Поздно не пока отсюда уходить срочно надо. Скорее же бежим .
- 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
дамп : array(3) {
[0]=>
string(43) "кажется нас обнаружили!"
[1]=>
string(78) " надо срочно уходить отсюда пока не поздно."
[2]=>
string(30) " бежим же скорее!"
}
дамп word: array(3) {
[0]=>
string(14) "кажется"
[1]=>
string(6) "нас"
[2]=>
string(21) "обнаружили!"
}
дамп реверс word: Обнаружили нас кажется.
дамп word: array(8) {
[0]=>
string(0) ""
[1]=>
string(8) "надо"
[2]=>
string(12) "срочно"
[3]=>
string(14) "уходить"
[4]=>
string(12) "отсюда"
[5]=>
string(8) "пока"
[6]=>
string(4) "не"
[7]=>
string(13) "поздно."
}
дамп реверс word: Поздно не пока отсюда уходить срочно надо .
дамп word: array(4) {
[0]=>
string(0) ""
[1]=>
string(10) "бежим"
[2]=>
string(4) "же"
[3]=>
string(13) "скорее!"
}
дамп реверс word: Скорее же бежим .
финал : Обнаружили нас кажется.Поздно не пока отсюда уходить срочно надо .Скорее же бежим .
Йода говорит: Обнаружили нас кажется. Поздно не пока отсюда уходить срочно надо. Скорее же бежим .
preferences:
172.58 ms | 405 KiB | 181 Q