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