fork download
  1. <?php
  2.  
  3.  
  4. //$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
  5. // Другие варианты для тестов
  6. $text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
  7. //$text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
  8.  
  9. function makeYodaStyleText($text)
  10. {
  11. $text = mb_strtolower($text);
  12. $text = preg_replace('/[,;]/', '', $text);
  13. $sentences = preg_split('/[.?!]/ui', $text, 0, PREG_SPLIT_NO_EMPTY);
  14. $reverseText = '';
  15. foreach ($sentences as $sentence) {
  16. $words = preg_split('/ /', $sentence);
  17. $reverseWords = array_reverse($words);
  18. $sentence = implode(' ', $reverseWords);
  19. $firstLetter = mb_strtoupper(mb_substr($sentence, 0, 1));
  20. $sentence = $firstLetter . mb_substr($sentence, 1);
  21. $reverseText .= $sentence . '.';
  22. }
  23. $reverseText = preg_replace('/ *(\\.) */', '$1 ', $reverseText);
  24. return $reverseText;
  25. }
  26.  
  27. $yodaText = makeYodaStyleText($text);
  28. echo "Йода говорит: {$yodaText}\n";
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
Йода говорит: Меня прости ну. Была вольна не себе в да сделать зла тебе я хотела не. Помнила не себя делала что говорила что.