fork download
  1. <?php
  2.  
  3. $text3 = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
  4. // Другие варианты для тестов
  5. $text2 = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
  6. $text1 = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
  7.  
  8. /* Делает первую букву предложения заглавной */
  9. function makeFirstletterUppercase($text) {
  10.  
  11. // foreach ($text as $value) {
  12. // $value = trim($value);
  13. // $value = mb_strtolower($value);
  14. // $first = mb_strtoupper(mb_substr($value, 0, 1));
  15. // $last = mb_substr($value, 1);
  16. // $value = $first . $last;
  17. // }
  18.  
  19. $length = count($text);
  20. for ($i = 0; $i < $length; $i++) {
  21. $text[$i] = trim($text[$i]);
  22. $text[$i] = mb_strtolower($text[$i]);
  23. $first = mb_strtoupper(mb_substr($text[$i], 0, 1));
  24. $last = mb_substr($text[$i], 1);
  25. $text[$i] = $first . $last;
  26. }
  27.  
  28. return implode(" ", $text);
  29. }
  30.  
  31. function makeYodaStyleText($text) {
  32. $text = preg_split("/[.!?]/u", $text, 0, PREG_SPLIT_NO_EMPTY);
  33. // foreach ($text as $value) {
  34. // $words = preg_split("/[\\s]|[,]|[;]/u", $text[$i], 0, PREG_SPLIT_NO_EMPTY);
  35. // $value = implode(" ", array_reverse($words)) . ".";
  36. // }
  37.  
  38. $length = count($text);
  39. for ($i = 0; $i < $length; $i++) {
  40. $words = preg_split("/[\\s]|[,]|[;]/u", $text[$i], 0, PREG_SPLIT_NO_EMPTY);
  41. $text[$i] = implode(" ", array_reverse($words)) . ".";
  42. }
  43.  
  44. return makeFirstletterUppercase($text);
  45. }
  46.  
  47. $yodaText = makeYodaStyleText($text1);
  48. echo "Йода говорит: {$yodaText}\n";
  49.  
  50. $yodaText = makeYodaStyleText($text2);
  51. echo "Йода говорит: {$yodaText}\n";
  52.  
  53. $yodaText = makeYodaStyleText($text3);
  54. echo "Йода говорит: {$yodaText}\n";
Success #stdin #stdout 0.04s 52480KB
stdin
Standard input is empty
stdout
Йода говорит: Война гражданская идет. Империей галактической зловещей со схватке в победу первую одержали базы тайной с удар наносящие повстанцев корабли космические.
Йода говорит: Меня прости ну. Была вольна не себе в да сделать зла тебе я хотела не. Помнила не себя делала что говорила что.
Йода говорит: Обнаружили нас кажется. Поздно не пока отсюда уходить срочно надо. Скорее же бежим.