fork download
  1. <?php
  2.  
  3.  
  4. $text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
  5. // Другие варианты для тестов
  6. // $text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
  7. // $text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
  8.  
  9. /* Делает первую букву предложения заглавной */
  10.  
  11.  
  12. function makeYodaStyleText($a) {
  13. $a = mb_strtolower($a); //делаю всё маленькими
  14. $a = preg_replace('/[,;]/', "", $a); //убираю запятые и т.п., чтоб не мешались
  15. $array1 = preg_split('/[.?!]/u', $a, 0, PREG_SPLIT_NO_EMPTY); //делю по предложениям
  16. $array2 = [];
  17. foreach($array1 as $key => $value) {
  18. $array2[$key] = preg_split('/ /u', $value, 0, PREG_SPLIT_NO_EMPTY); //делю по словам
  19. }
  20. for ($i = 0; $i < count($array2); $i++) {
  21. $array2[$i] = array_reverse($array2[$i]); //переворачиваю
  22. $array2[$i] = implode(" ", $array2[$i]); //соединяю
  23. $array2[$i] = mb_strtoupper(mb_substr($array2[$i],0,1)).mb_substr($array2[$i],1); //первую букву заглавной
  24. }
  25. $newText = implode(". ", $array2)."."; //делаю единое предложение
  26. return $newText;
  27. }
  28.  
  29. $yodaText = makeYodaStyleText($text);
  30. echo "Йода говорит: {$yodaText}\n";
Success #stdin #stdout 0.03s 52432KB
stdin
Standard input is empty
stdout
Йода говорит: Обнаружили нас кажется. Поздно не пока отсюда уходить срочно надо. Скорее же бежим.