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