<?php
$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!" ;
// Другие варианты для тестов
// $text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
// $text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
/* Делает первую букву предложения заглавной */
function makeFirstletterUppercase( $text ) {
return $text ;
}
function makeYodaStyleText( $text ) {
"/(\\ s)+([,.!?:;])([\\ w])/ui" ,
"/([\\ w])([,.!?:;])([\\ w])/ui"
) ;
"$2 $3 " ,
"$1 $2 $3 "
) ;
$sentenses = preg_split ( "/([.?!]{1,2})/u" , $text , - 1 , PREG_SPLIT_NO_EMPTY
| PREG_SPLIT_DELIM_CAPTURE
) ;
for ( $i = 0 ; $i < count ( $sentenses ) ; $i ++ ) { continue ;
}
$words [ $i ] = preg_split ( "/[,:;]?\\ s+/" , $sentenses [ $i ] ) ; $sentenses [ $i ] = makeFirstletterUppercase( $sentenses [ $i ] ) ;
}
return $spacesFixed ;
}
$yodaText = makeYodaStyleText( $text ) ;
echo "Йода говорит: {$yodaText} \n " ;
ICAgIDw/cGhwCiAgICAgCiAgICBlcnJvcl9yZXBvcnRpbmcoLTEpOwogICAgbWJfaW50ZXJuYWxfZW5jb2RpbmcoJ3V0Zi04Jyk7CiAgICAgCiAgICAkdGV4dCA9ICLQmtCw0LbQtdGC0YHRjywg0L3QsNGBINC+0LHQvdCw0YDRg9C20LjQu9C4ISDQndCw0LTQviDRgdGA0L7Rh9C90L4g0YPRhdC+0LTQuNGC0Ywg0L7RgtGB0Y7QtNCwLCDQv9C+0LrQsCDQvdC1INC/0L7Qt9C00L3Qvi4g0JHQtdC20LjQvCDQttC1INGB0LrQvtGA0LXQtSEiOwogICAgLy8g0JTRgNGD0LPQuNC1INCy0LDRgNC40LDQvdGC0Ysg0LTQu9GPINGC0LXRgdGC0L7QsgogICAgLy8gJHRleHQgPSAi0J3Rgywg0L/RgNC+0YHRgtC4INC80LXQvdGPISDQndC1INGF0L7RgtC10LvQsCDRjyDRgtC10LHQtSDQt9C70LAg0YHQtNC10LvQsNGC0Yw7INC00LAg0LIg0YHQtdCx0LUg0L3QtSDQstC+0LvRjNC90LAg0LHRi9C70LAuINCn0YLQviDQs9C+0LLQvtGA0LjQu9CwLCDRh9GC0L4g0LTQtdC70LDQu9CwLCDRgdC10LHRjyDQvdC1INC/0L7QvNC90LjQu9CwLiI7CiAgICAvLyAkdGV4dCA9ICLQmNC00LXRgiDQs9GA0LDQttC00LDQvdGB0LrQsNGPINCy0L7QudC90LAuINCa0L7RgdC80LjRh9C10YHQutC40LUg0LrQvtGA0LDQsdC70Lgg0L/QvtCy0YHRgtCw0L3RhtC10LIsINC90LDQvdC+0YHRj9GJ0LjQtSDRg9C00LDRgCDRgSDRgtCw0LnQvdC+0Lkg0LHQsNC30YssINC+0LTQtdGA0LbQsNC70Lgg0L/QtdGA0LLRg9GOINC/0L7QsdC10LTRgywg0LIg0YHRhdCy0LDRgtC60LUg0YHQviDQt9C70L7QstC10YnQtdC5INCT0LDQu9Cw0LrRgtC40YfQtdGB0LrQvtC5INCY0LzQv9C10YDQuNC10LkuIjsKICAgICAKICAgIC8qINCU0LXQu9Cw0LXRgiDQv9C10YDQstGD0Y4g0LHRg9C60LLRgyDQv9GA0LXQtNC70L7QttC10L3QuNGPINC30LDQs9C70LDQstC90L7QuSAqLwogICAgZnVuY3Rpb24gbWFrZUZpcnN0bGV0dGVyVXBwZXJjYXNlKCR0ZXh0KSB7CiAgICAgICR0ZXh0ICAgICAgPSB0cmltKCR0ZXh0KTsKICAgICAgJGZpcnN0Q2hhciA9IG1iX3N1YnN0cigkdGV4dCwgMCwgMSk7CiAgICAgICRmaXhlZCAgICAgPSBtYl9zdHJ0b3VwcGVyKCRmaXJzdENoYXIpOwogICAgICAkdGV4dCAgICAgID0gJGZpeGVkIC4gbWJfc3Vic3RyKCR0ZXh0LCAxKTsKICAgICAgcmV0dXJuICR0ZXh0OwogICAgfQoKICAgIAogICAgIAogICAgZnVuY3Rpb24gbWFrZVlvZGFTdHlsZVRleHQoJHRleHQpIHsKICAgICAgICRyZWcgICA9IGFycmF5KAogICAgICAgICAgIi8oXFxzKSsoWywuIT86O10pKFtcXHddKS91aSIsCiAgICAgICAgICAiLyhbXFx3XSkoWywuIT86O10pKFtcXHddKS91aSIKICAgICAgICApOwogICAgICAgICRyaWdodCA9IGFycmF5KAogICAgICAgICAgIiQyICQzIiwKICAgICAgICAgICIkMSQyICQzIgogICAgICAgICk7CiAgICAgICRzZW50ZW5zZXMgPSBwcmVnX3NwbGl0KCIvKFsuPyFdezEsMn0pL3UiLCAkdGV4dCwgLTEsIFBSRUdfU1BMSVRfTk9fRU1QVFkgfCBQUkVHX1NQTElUX0RFTElNX0NBUFRVUkUpOwoKICAgIGZvciAoJGk9MDsgJGkgPCBjb3VudCgkc2VudGVuc2VzKTsgJGkrKykgewogICAgCWlmICggcHJlZ19tYXRjaCgiL1s/IS5dLyIsICRzZW50ZW5zZXNbJGldKSApIHsKICAgICAgICAgCWNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgJHdvcmRzWyRpXSA9IHByZWdfc3BsaXQoIi9bLDo7XT9cXHMrLyIsICRzZW50ZW5zZXNbJGldKTsKICAgICAgICAkd29yZHNSID0gc2h1ZmZsZSgkd29yZHNbJGldKTsKICAgICAgICAkc2VudGVuc2VzWyRpXSA9IG1iX3N0cnRvbG93ZXIoaW1wbG9kZSgiICIsICR3b3Jkc1IpKTsKICAgICAgICAkc2VudGVuc2VzWyRpXSA9IG1ha2VGaXJzdGxldHRlclVwcGVyY2FzZSgkc2VudGVuc2VzWyRpXSk7CiAgICB9CiAgICAkdGV4dCA9IGltcGxvZGUoIiIsIGFycmF5X3ZhbHVlcygkc2VudGVuc2VzKSk7CiAgICAgICAgCiAgICAkc3BhY2VzRml4ZWQgPSBwcmVnX3JlcGxhY2UoJHJlZywgJHJpZ2h0LCAkdGV4dCk7CiAgICAKICAgIHJldHVybiAkc3BhY2VzRml4ZWQ7CiAgICB9CiAgICAgCiAgICAkeW9kYVRleHQgPSBtYWtlWW9kYVN0eWxlVGV4dCgkdGV4dCk7CiAgICBlY2hvICLQmdC+0LTQsCDQs9C+0LLQvtGA0LjRgjogeyR5b2RhVGV4dH1cbiI7CiAgICAgCg==