<?php
//$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
// Другие варианты для тестов
$text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила." ;
//$text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
//Делает первый символ заглавным
function makeFirstletterUppercase( $text ) {
return $text ;
}
function makeYodaStyleText( $text ) {
$regForSentences = "/([!?;.]+\s*)/ui" ;
$sentences = preg_split ( $regForSentences , $text , 0 , PREG_SPLIT_NO_EMPTY
| PREG_SPLIT_DELIM_CAPTURE) ;
$sign = '' ; //Для знака на конце предложений
foreach ( $sentences as $key => & $sentence )
$sign = $sentence ; //Сохраняем знак предыдущего предложения
}
else {
$wordsInSentence = preg_split ( "/(\s)/u" , $sentence , 0 , PREG_SPLIT_NO_EMPTY) ;
$sentence = implode ( ' ' , $wordsInSentence ) ; /*Если предыдущее предложение заканчивалось знаком';', то не будем
делать первый символ заглавным*/
$sentence = makeFirstletterUppercase( $sentence ) ;
}
}
return $result ;
}
$yodaText = makeYodaStyleText( $text ) ;
echo "Йода говорит: {$yodaText} \n " ;
PD9waHAKIAplcnJvcl9yZXBvcnRpbmcoLTEpOwptYl9pbnRlcm5hbF9lbmNvZGluZygndXRmLTgnKTsKIAovLyR0ZXh0ID0gItCa0LDQttC10YLRgdGPLCDQvdCw0YEg0L7QsdC90LDRgNGD0LbQuNC70LghINCd0LDQtNC+INGB0YDQvtGH0L3QviDRg9GF0L7QtNC40YLRjCDQvtGC0YHRjtC00LAsINC/0L7QutCwINC90LUg0L/QvtC30LTQvdC+LiDQkdC10LbQuNC8INC20LUg0YHQutC+0YDQtdC1ISI7Ci8vINCU0YDRg9Cz0LjQtSDQstCw0YDQuNCw0L3RgtGLINC00LvRjyDRgtC10YHRgtC+0LIKICR0ZXh0ID0gItCd0YMsINC/0YDQvtGB0YLQuCDQvNC10L3RjyEg0J3QtSDRhdC+0YLQtdC70LAg0Y8g0YLQtdCx0LUg0LfQu9CwINGB0LTQtdC70LDRgtGMOyDQtNCwINCyINGB0LXQsdC1INC90LUg0LLQvtC70YzQvdCwINCx0YvQu9CwLiDQp9GC0L4g0LPQvtCy0L7RgNC40LvQsCwg0YfRgtC+INC00LXQu9Cw0LvQsCwg0YHQtdCx0Y8g0L3QtSDQv9C+0LzQvdC40LvQsC4iOwogLy8kdGV4dCA9ICLQmNC00LXRgiDQs9GA0LDQttC00LDQvdGB0LrQsNGPINCy0L7QudC90LAuINCa0L7RgdC80LjRh9C10YHQutC40LUg0LrQvtGA0LDQsdC70Lgg0L/QvtCy0YHRgtCw0L3RhtC10LIsINC90LDQvdC+0YHRj9GJ0LjQtSDRg9C00LDRgCDRgSDRgtCw0LnQvdC+0Lkg0LHQsNC30YssINC+0LTQtdGA0LbQsNC70Lgg0L/QtdGA0LLRg9GOINC/0L7QsdC10LTRgywg0LIg0YHRhdCy0LDRgtC60LUg0YHQviDQt9C70L7QstC10YnQtdC5INCT0LDQu9Cw0LrRgtC40YfQtdGB0LrQvtC5INCY0LzQv9C10YDQuNC10LkuIjsKIAovL9CU0LXQu9Cw0LXRgiDQv9C10YDQstGL0Lkg0YHQuNC80LLQvtC7INC30LDQs9C70LDQstC90YvQvApmdW5jdGlvbiBtYWtlRmlyc3RsZXR0ZXJVcHBlcmNhc2UoJHRleHQpIHsKICAgICRmaXJzdENoYXIgPSBtYl9zdWJzdHIoJHRleHQsIDAsIDEpOwogICAgJGZpcnN0Q2hhciA9IG1iX3N0cnRvdXBwZXIoJGZpcnN0Q2hhcik7CiAgICAkdGV4dCA9ICRmaXJzdENoYXIgLiBtYl9zdWJzdHIoJHRleHQsIDEpOwogICAgcmV0dXJuICR0ZXh0Owp9CiAKZnVuY3Rpb24gbWFrZVlvZGFTdHlsZVRleHQoJHRleHQpIHsKCSR0ZXh0ID0gcHJlZ19yZXBsYWNlKCIvWyw6XS91IiwgJycsICR0ZXh0KTsgCiAJJHJlZ0ZvclNlbnRlbmNlcyA9ICIvKFshPzsuXStccyopL3VpIjsKIAkkc2VudGVuY2VzID0gcHJlZ19zcGxpdCgkcmVnRm9yU2VudGVuY2VzLCAkdGV4dCwgMCwgUFJFR19TUExJVF9OT19FTVBUWXwKIAkgICAgICAgICAgICAgUFJFR19TUExJVF9ERUxJTV9DQVBUVVJFKTsgCiAJJHNpZ24gPSAnJzsgLy/QlNC70Y8g0LfQvdCw0LrQsCDQvdCwINC60L7QvdGG0LUg0L/RgNC10LTQu9C+0LbQtdC90LjQuQogCWZvcmVhY2ggKCRzZW50ZW5jZXMgYXMgJGtleSA9PiAmJHNlbnRlbmNlKSAKIAkJaWYgKHByZWdfbWF0Y2goIi9bIT87XFwuXS91IiwgJHNlbnRlbmNlKSkgewoJCQkJJHNpZ24gPSAkc2VudGVuY2U7IC8v0KHQvtGF0YDQsNC90Y/QtdC8INC30L3QsNC6INC/0YDQtdC00YvQtNGD0YnQtdCz0L4g0L/RgNC10LTQu9C+0LbQtdC90LjRjwoJCX0KIAkJZWxzZSB7CiAJCQkkd29yZHNJblNlbnRlbmNlID0gcHJlZ19zcGxpdCgiLyhccykvdSIsICRzZW50ZW5jZSwgMCwgCiAJCQkgICAgICAgICAgICAgICAgICAgUFJFR19TUExJVF9OT19FTVBUWSk7CiAJCQkkd29yZHNJblNlbnRlbmNlWzBdID0gbWJfc3RydG9sb3dlcigkd29yZHNJblNlbnRlbmNlWzBdKTsKIAkJCSR3b3Jkc0luU2VudGVuY2UgPSBhcnJheV9yZXZlcnNlKCR3b3Jkc0luU2VudGVuY2UpOwogCQkJJHNlbnRlbmNlID0gaW1wbG9kZSgnICcsICR3b3Jkc0luU2VudGVuY2UpOwogCQkJLyrQldGB0LvQuCDQv9GA0LXQtNGL0LTRg9GJ0LXQtSDQv9GA0LXQtNC70L7QttC10L3QuNC1INC30LDQutCw0L3Rh9C40LLQsNC70L7RgdGMINC30L3QsNC60L7QvCc7Jywg0YLQviDQvdC1INCx0YPQtNC10LwKIAkJCSAg0LTQtdC70LDRgtGMINC/0LXRgNCy0YvQuSDRgdC40LzQstC+0Lsg0LfQsNCz0LvQsNCy0L3Ri9C8Ki8KIAkJCWlmICghcHJlZ19tYXRjaCgiLzsvdSIsICRzaWduKSkgewogCQkJCSRzZW50ZW5jZSA9IG1ha2VGaXJzdGxldHRlclVwcGVyY2FzZSgkc2VudGVuY2UpOwogCQkJfQogCQl9CgkJCiAJCQogICAgJHJlc3VsdCA9IGltcGxvZGUoJHNlbnRlbmNlcyk7CglyZXR1cm4gJHJlc3VsdDsKfQogCiR5b2RhVGV4dCA9IG1ha2VZb2RhU3R5bGVUZXh0KCR0ZXh0KTsKZWNobyAi0JnQvtC00LAg0LPQvtCy0L7RgNC40YI6IHskeW9kYVRleHR9XG4iOw==