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