fork download
  1. <?php
  2.  
  3.  
  4. //$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
  5. // Другие варианты для тестов
  6. // $text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
  7. $text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
  8.  
  9. /* Делает первую букву предложения заглавной */
  10. function makeFirstletterUppercase($text) {
  11. foreach($text as $key => $value) {
  12. $value = mb_strtoupper(mb_substr($value, 0, 1))
  13. .mb_substr($value, 1);
  14. $text[$key] = $value;
  15. }
  16. return $text;
  17. }
  18. function makeYodaStyleText($text) {
  19. $splitText = preg_split('/[.!?;]\\s*/', $text, 0, PREG_SPLIT_NO_EMPTY);
  20. $reverse = [];
  21. foreach ($splitText as $key => $value){
  22. $value = mb_strtolower($value);
  23. $value = preg_split('/[,?!;]?\\s/', $value, 0, PREG_SPLIT_NO_EMPTY);
  24. $splitText[$key] = implode(' ', array_reverse($value)).'. ';
  25. }
  26. return implode('', makeFirstletterUppercase($splitText));
  27. }
  28. function reverseText($text) {
  29. $text = preg_split('/[,?!;]?\\s/', $text, 0, PREG_SPLIT_NO_EMPTY);
  30. return array_reverse($text);
  31. }
  32. echo(makeYodaStyleText($text));
Success #stdin #stdout 0.02s 52472KB
stdin
Standard input is empty
stdout
Война гражданская идет. Империей галактической зловещей со схватке в победу первую одержали базы тайной с удар наносящие повстанцев корабли космические.