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