<?php
$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!" ;
// Другие варианты для тестов
$text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила." ;
$text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей." ;
/* Делает первую букву предложения заглавной */
function makeFirstLetterUppercase( $text ) {
$parts = preg_split ( '/(?<=[.!?])/u' , $text , 0 , PREG_SPLIT_NO_EMPTY
) ; $result = '' ;
foreach ( $parts as $key => $sentence ) {
$sentence = trim ( $sentence ) ; $result = $result . $firstLetter . $otherPart . ' ' ;
}
return $result ;
}
function makeYodaStyleText( $text ) {
$result = '' ;
$parts = preg_split ( '/[.]/u' , $text , 0 , PREG_SPLIT_NO_EMPTY
) ; foreach ( $parts as $key => $sentence ) {
$words = preg_split ( '/\x20/' , $sentence , 0 , PREG_SPLIT_NO_EMPTY
) ; $result = $result . implode ( ' ' , $words ) . '. ' ; }
$result = makeFirstLetterUppercase( $result ) ;
return $result ;
}
$yodaText = makeYodaStyleText( $text ) ;
echo "Йода говорит: {$yodaText} \n " ;
PD9waHAKIAplcnJvcl9yZXBvcnRpbmcoLTEpOwptYl9pbnRlcm5hbF9lbmNvZGluZygndXRmLTgnKTsKIAokdGV4dCA9ICLQmtCw0LbQtdGC0YHRjywg0L3QsNGBINC+0LHQvdCw0YDRg9C20LjQu9C4ISDQndCw0LTQviDRgdGA0L7Rh9C90L4g0YPRhdC+0LTQuNGC0Ywg0L7RgtGB0Y7QtNCwLCDQv9C+0LrQsCDQvdC1INC/0L7Qt9C00L3Qvi4g0JHQtdC20LjQvCDQttC1INGB0LrQvtGA0LXQtSEiOwovLyDQlNGA0YPQs9C40LUg0LLQsNGA0LjQsNC90YLRiyDQtNC70Y8g0YLQtdGB0YLQvtCyCiR0ZXh0ID0gItCd0YMsINC/0YDQvtGB0YLQuCDQvNC10L3RjyEg0J3QtSDRhdC+0YLQtdC70LAg0Y8g0YLQtdCx0LUg0LfQu9CwINGB0LTQtdC70LDRgtGMOyDQtNCwINCyINGB0LXQsdC1INC90LUg0LLQvtC70YzQvdCwINCx0YvQu9CwLiDQp9GC0L4g0LPQvtCy0L7RgNC40LvQsCwg0YfRgtC+INC00LXQu9Cw0LvQsCwg0YHQtdCx0Y8g0L3QtSDQv9C+0LzQvdC40LvQsC4iOwokdGV4dCA9ICLQmNC00LXRgiDQs9GA0LDQttC00LDQvdGB0LrQsNGPINCy0L7QudC90LAuINCa0L7RgdC80LjRh9C10YHQutC40LUg0LrQvtGA0LDQsdC70Lgg0L/QvtCy0YHRgtCw0L3RhtC10LIsINC90LDQvdC+0YHRj9GJ0LjQtSDRg9C00LDRgCDRgSDRgtCw0LnQvdC+0Lkg0LHQsNC30YssINC+0LTQtdGA0LbQsNC70Lgg0L/QtdGA0LLRg9GOINC/0L7QsdC10LTRgywg0LIg0YHRhdCy0LDRgtC60LUg0YHQviDQt9C70L7QstC10YnQtdC5INCT0LDQu9Cw0LrRgtC40YfQtdGB0LrQvtC5INCY0LzQv9C10YDQuNC10LkuIjsKIAovKiDQlNC10LvQsNC10YIg0L/QtdGA0LLRg9GOINCx0YPQutCy0YMg0L/RgNC10LTQu9C+0LbQtdC90LjRjyDQt9Cw0LPQu9Cw0LLQvdC+0LkgKi8KZnVuY3Rpb24gbWFrZUZpcnN0TGV0dGVyVXBwZXJjYXNlKCR0ZXh0KSB7CiAgICAkcGFydHMgPSBwcmVnX3NwbGl0KCcvKD88PVsuIT9dKS91JywgJHRleHQsIDAsIFBSRUdfU1BMSVRfTk9fRU1QVFkpOwogICAgJHJlc3VsdCA9ICcnOwoJCWZvcmVhY2goJHBhcnRzIGFzICRrZXkgPT4gJHNlbnRlbmNlKSB7CgkJCSRzZW50ZW5jZSA9IHRyaW0oJHNlbnRlbmNlKTsKCQkJJG90aGVyUGFydCA9IG1iX3N1YnN0cigkc2VudGVuY2UsIDEpOwoJCQkkZmlyc3RMZXR0ZXIgPSBtYl9zdHJ0b3VwcGVyKG1iX3N1YnN0cigkc2VudGVuY2UsIDAsIDEpKTsKCQkJJHJlc3VsdCA9ICRyZXN1bHQgLiAkZmlyc3RMZXR0ZXIgLiAkb3RoZXJQYXJ0IC4gJyAnOwoJCX0KCXJldHVybiAkcmVzdWx0Owp9CiAKZnVuY3Rpb24gbWFrZVlvZGFTdHlsZVRleHQoJHRleHQpIHsKIAogICAgJHJlc3VsdCA9ICcnOwogICAgJHRleHQgPSBwcmVnX3JlcGxhY2UoJy9bIT9dL3UnLCAnLicsICR0ZXh0KTsKICAgICRwYXJ0cyA9IHByZWdfc3BsaXQoJy9bLl0vdScsICR0ZXh0LCAwLCBQUkVHX1NQTElUX05PX0VNUFRZKTsKICAgIGZvcmVhY2goJHBhcnRzIGFzICRrZXkgPT4gJHNlbnRlbmNlKSB7CiAgICAJJHdvcmRzID0gcHJlZ19zcGxpdCgnL1x4MjAvJywgJHNlbnRlbmNlLCAwLCBQUkVHX1NQTElUX05PX0VNUFRZKTsKICAgIAkkd29yZHMgPSBhcnJheV9yZXZlcnNlKCR3b3Jkcyk7CiAgICAJJHJlc3VsdCA9ICRyZXN1bHQgLiBpbXBsb2RlKCcgJywgJHdvcmRzKSAuICcuICc7CiAgICAJJHJlc3VsdCA9IHByZWdfcmVwbGFjZSgnL1ssIT87XS91JywgJycsICRyZXN1bHQpOwogICAgfQogICAgJGxlbmd0aCA9IG1iX3N0cmxlbigkcmVzdWx0KTsKICAgICRyZXN1bHQgPSBtYl9zdWJzdHIoJHJlc3VsdCwgMCwgJGxlbmd0aC0xKTsKICAgICRyZXN1bHQgPSBtYl9zdHJ0b2xvd2VyKCRyZXN1bHQpOwogICAgCiAgICAkcmVzdWx0ID0gbWFrZUZpcnN0TGV0dGVyVXBwZXJjYXNlKCRyZXN1bHQpOwogICAgCiAgICByZXR1cm4gJHJlc3VsdDsKfQogCiR5b2RhVGV4dCA9IG1ha2VZb2RhU3R5bGVUZXh0KCR0ZXh0KTsKZWNobyAi0JnQvtC00LAg0LPQvtCy0L7RgNC40YI6IHskeW9kYVRleHR9XG4iOw==