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