fork download
  1. <?php
  2.  
  3. $text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
  4. // Другие варианты для тестов
  5. // $text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
  6. // $text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
  7.  
  8. /* Делает первую букву предложения заглавной и ставим точку вконце */
  9. function makeFirstletterUppercase($text) {
  10.  
  11. $text = preg_replace ('([.,?!;])', '', $text); // убираем пунктуацию
  12. $sf = mb_strtoupper(mb_substr($text, 0, 1)); // делаем первую букву предложения заглавной
  13. $text = $sf . mb_substr($text, 1) . "."; // добавляем точку в конце предложения
  14. return $text;
  15. }
  16.  
  17. // Функция замены порядка слов в $строке
  18. function reverseWordOrder($str) {
  19.  
  20. $wordArroy = preg_split ('/\\s/u', $str, -1, PREG_SPLIT_NO_EMPTY); // разбиваем $строку на $масив_слов
  21. $wordArroy = array_reverse($wordArroy); // меняем слова местами в $масив_слов
  22.  
  23. foreach ($wordArroy as $word) { // склеиваем $слова в $строку
  24. if (!$resultStr) {
  25. $resultStr = mb_strtolower($word);
  26. } else {
  27. $resultStr .= " " . mb_strtolower($word);
  28. }
  29. }
  30. return $resultStr; // возвращаем $строку
  31. }
  32.  
  33. // Просили не менять имена переменных, главная функция
  34. function makeYodaStyleText($text) {
  35.  
  36. $strArroyResult = array(); // $новый_массив_строк
  37. $strArroy = preg_split ('/([.?!]\\s)/u', $text, -1, PREG_SPLIT_NO_EMPTY); // разбить $текст на $строки -> $массив_строк
  38.  
  39. foreach ($strArroy as $str) { // перебираем $массив_строк
  40. $str = reverseWordOrder($str); // отправляем каждую $строку в функция замены порядка слов
  41. $str = makeFirstletterUppercase($str); // отправляем каждую $строку в функция заглавную букву
  42. if (!$resultText) { // склеиваем строки в $финальный_текст
  43. $resultText = ($str);
  44. } else {
  45. $resultText .= " " . ($str);
  46. }
  47. }
  48. return $resultText;
  49. }
  50.  
  51. $yodaText = makeYodaStyleText($text);
  52. echo "Йода говорит: {$yodaText}\n";
  53.  
  54. ?>
Success #stdin #stdout #stderr 0.02s 52472KB
stdin
Standard input is empty
stdout
Йода говорит: Обнаружили нас кажется. Поздно не пока отсюда уходить срочно надо. Скорее же бежим.
stderr
PHP Notice:  Undefined variable: resultStr in /home/DlFGPF/prog.php on line 25
PHP Notice:  Undefined variable: resultText in /home/DlFGPF/prog.php on line 43
PHP Notice:  Undefined variable: resultStr in /home/DlFGPF/prog.php on line 25
PHP Notice:  Undefined variable: resultStr in /home/DlFGPF/prog.php on line 25