<?php 
/*Yoda Speak 
Задание: 
дан текст из нескольких предложений, предложение состоит из русских слов, разделенных пробелами. Написать программу, переставляющую слова в предложениях в обратном порядке. Знаки препинания в конце предложений (точка, восклицательный знак) можно не сохранять.*/ 
 
//$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!"; 
// Другие варианты для тестов 
//$text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила."; 
$text  =  "Идет гражданская война?? Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей!" ; 
 
/* Делает первую букву предложения заглавной */ 
function  makeFirstletterUppercase( $text )  { 
} 
 
function  makeYodaStyleText( $text )  { 
    $regExp  =  [ 
        "expSplit"  =>  "/([.!?;]+)\K\s*/" , 
        "expUselessSymbol"  =>  "/[:,-]/" , 
        "expReplace"  =>  "/([^.!?;]+)([.!?;]+)(.+)/" , 
        "replacement"  =>  "$1 $3 $2 " 
    ] ; 
    $strings  =  preg_split ( $regExp [ "expSplit" ] ,  $text ,  - 1 ,  PREG_SPLIT_NO_EMPTY
) ;      $reverseStrings  =  [ ] ; 
 
    foreach  ( $strings  as  $string )  { 
        $reverseStrings [ ]  =  makeFirstLetterUppercase
( implode ( " " ,  $reverseWords ) ) ;      } 
 
    return  implode ( " " ,  preg_replace ( $regExp [ "expReplace" ] ,  $regExp [ "replacement" ] ,  $reverseStrings ) ) ;  } 
 
$yodaText  =  makeYodaStyleText( $text ) ; 
echo  "Йода говорит: {$yodaText} \n " ; 
 
				PD9waHAKLypZb2RhIFNwZWFrCtCX0LDQtNCw0L3QuNC1OgrQtNCw0L0g0YLQtdC60YHRgiDQuNC3INC90LXRgdC60L7Qu9GM0LrQuNGFINC/0YDQtdC00LvQvtC20LXQvdC40LksINC/0YDQtdC00LvQvtC20LXQvdC40LUg0YHQvtGB0YLQvtC40YIg0LjQtyDRgNGD0YHRgdC60LjRhSDRgdC70L7Qsiwg0YDQsNC30LTQtdC70LXQvdC90YvRhSDQv9GA0L7QsdC10LvQsNC80LguINCd0LDQv9C40YHQsNGC0Ywg0L/RgNC+0LPRgNCw0LzQvNGDLCDQv9C10YDQtdGB0YLQsNCy0LvRj9GO0YnRg9GOINGB0LvQvtCy0LAg0LIg0L/RgNC10LTQu9C+0LbQtdC90LjRj9GFINCyINC+0LHRgNCw0YLQvdC+0Lwg0L/QvtGA0Y/QtNC60LUuINCX0L3QsNC60Lgg0L/RgNC10L/QuNC90LDQvdC40Y8g0LIg0LrQvtC90YbQtSDQv9GA0LXQtNC70L7QttC10L3QuNC5ICjRgtC+0YfQutCwLCDQstC+0YHQutC70LjRhtCw0YLQtdC70YzQvdGL0Lkg0LfQvdCw0LopINC80L7QttC90L4g0L3QtSDRgdC+0YXRgNCw0L3Rj9GC0YwuKi8KCi8vJHRleHQgPSAi0JrQsNC20LXRgtGB0Y8sINC90LDRgSDQvtCx0L3QsNGA0YPQttC40LvQuCEg0J3QsNC00L4g0YHRgNC+0YfQvdC+INGD0YXQvtC00LjRgtGMINC+0YLRgdGO0LTQsCwg0L/QvtC60LAg0L3QtSDQv9C+0LfQtNC90L4uINCR0LXQttC40Lwg0LbQtSDRgdC60L7RgNC10LUhIjsKLy8g0JTRgNGD0LPQuNC1INCy0LDRgNC40LDQvdGC0Ysg0LTQu9GPINGC0LXRgdGC0L7QsgovLyR0ZXh0ID0gItCd0YMsINC/0YDQvtGB0YLQuCDQvNC10L3RjyEg0J3QtSDRhdC+0YLQtdC70LAg0Y8g0YLQtdCx0LUg0LfQu9CwINGB0LTQtdC70LDRgtGMOyDQtNCwINCyINGB0LXQsdC1INC90LUg0LLQvtC70YzQvdCwINCx0YvQu9CwLiDQp9GC0L4g0LPQvtCy0L7RgNC40LvQsCwg0YfRgtC+INC00LXQu9Cw0LvQsCwg0YHQtdCx0Y8g0L3QtSDQv9C+0LzQvdC40LvQsC4iOwokdGV4dCA9ICLQmNC00LXRgiDQs9GA0LDQttC00LDQvdGB0LrQsNGPINCy0L7QudC90LA/PyDQmtC+0YHQvNC40YfQtdGB0LrQuNC1INC60L7RgNCw0LHQu9C4INC/0L7QstGB0YLQsNC90YbQtdCyLCDQvdCw0L3QvtGB0Y/RidC40LUg0YPQtNCw0YAg0YEg0YLQsNC50L3QvtC5INCx0LDQt9GLLCDQvtC00LXRgNC20LDQu9C4INC/0LXRgNCy0YPRjiDQv9C+0LHQtdC00YMsINCyINGB0YXQstCw0YLQutC1INGB0L4g0LfQu9C+0LLQtdGJ0LXQuSDQk9Cw0LvQsNC60YLQuNGH0LXRgdC60L7QuSDQmNC80L/QtdGA0LjQtdC5ISI7CgovKiDQlNC10LvQsNC10YIg0L/QtdGA0LLRg9GOINCx0YPQutCy0YMg0L/RgNC10LTQu9C+0LbQtdC90LjRjyDQt9Cw0LPQu9Cw0LLQvdC+0LkgKi8KZnVuY3Rpb24gbWFrZUZpcnN0bGV0dGVyVXBwZXJjYXNlKCR0ZXh0KSB7CiAgICByZXR1cm4gbWJfc3RydG91cHBlcihtYl9zdWJzdHIoJHRleHQsIDAsIDEpKSAuIG1iX3N1YnN0cigkdGV4dCwgMSk7Cn0KCmZ1bmN0aW9uIG1ha2VZb2RhU3R5bGVUZXh0KCR0ZXh0KSB7CiAgICAkcmVnRXhwID0gWwogICAgICAgICJleHBTcGxpdCIgPT4gIi8oWy4hPztdKylcS1xzKi8iLAogICAgICAgICJleHBVc2VsZXNzU3ltYm9sIiA9PiAiL1s6LC1dLyIsCiAgICAgICAgImV4cFJlcGxhY2UiID0+ICIvKFteLiE/O10rKShbLiE/O10rKSguKykvIiwKICAgICAgICAicmVwbGFjZW1lbnQiID0+ICIkMSQzJDIiCiAgICBdOwogICAgJHRleHQgPSBtYl9zdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgkcmVnRXhwWyJleHBVc2VsZXNzU3ltYm9sIl0sICIiLCAkdGV4dCkpOwogICAgJHN0cmluZ3MgPSBwcmVnX3NwbGl0KCRyZWdFeHBbImV4cFNwbGl0Il0sICR0ZXh0LCAtMSwgUFJFR19TUExJVF9OT19FTVBUWSk7CiAgICAkcmV2ZXJzZVN0cmluZ3MgPSBbXTsKCiAgICBmb3JlYWNoICgkc3RyaW5ncyBhcyAkc3RyaW5nKSB7CiAgICAgICAgJHJldmVyc2VXb3JkcyA9IGFycmF5X3JldmVyc2UoZXhwbG9kZSgiICIsICRzdHJpbmcpKTsKICAgICAgICAkcmV2ZXJzZVN0cmluZ3NbXSA9IG1ha2VGaXJzdExldHRlclVwcGVyY2FzZShpbXBsb2RlKCIgIiwgJHJldmVyc2VXb3JkcykpOwogICAgfQoKICAgIHJldHVybiBpbXBsb2RlKCIgIiwgcHJlZ19yZXBsYWNlKCRyZWdFeHBbImV4cFJlcGxhY2UiXSwgJHJlZ0V4cFsicmVwbGFjZW1lbnQiXSwgJHJldmVyc2VTdHJpbmdzKSk7Cn0KCiR5b2RhVGV4dCA9IG1ha2VZb2RhU3R5bGVUZXh0KCR0ZXh0KTsKZWNobyAi0JnQvtC00LAg0LPQvtCy0L7RgNC40YI6IHskeW9kYVRleHR9XG4iOw==