fork download
  1. <?php
  2.  
  3.  
  4. $text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
  5. //$text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
  6. //$text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
  7.  
  8. /* Делает первую букву предложения заглавной */
  9. function makeFirstletterUppercase($parts) {
  10. $letters = mb_substr($parts, 0, 1);
  11. $upLetters = mb_strtoupper($letters);
  12. $parts = mb_substr($parts, 1);
  13. $parts = $upLetters . $parts;
  14. return $parts;
  15. }
  16.  
  17. /* Делает Йода-style текст */
  18. function makeYodaStyleText($text) {
  19. $i = 0;
  20. $arr = array();
  21. $regexp = '/[.!?]/';
  22. $parts = preg_split($regexp, $text, 0, PREG_SPLIT_NO_EMPTY);
  23. foreach ($parts as $sentence) {
  24. $words = explode(" ", $sentence);
  25. $words = array_reverse($words); //сортируем массив из слов по значениям в обратном порядке
  26. $newParts = implode(" ", $words); //объединяем слова в предложения
  27. $newParts = mb_strtolower($newParts);
  28. $newParts = trim($newParts);
  29. $newParts = str_replace(",", "", $newParts); //убираем запятые
  30. $arr[] = $newParts;
  31. $arr = array_map("makeFirstLetterUppercase", $arr);
  32. }
  33. $result = implode(". ", $arr);
  34. $result = $result . ".";
  35. return $result;
  36. }
  37.  
  38. $yodaText = makeYodaStyleText($text);
  39. echo "Йода говорит: {$yodaText}\n";
Success #stdin #stdout 0.02s 24144KB
stdin
Standard input is empty
stdout
Йода говорит: Обнаружили нас кажется. Поздно не пока отсюда уходить срочно надо. Скорее же бежим.