<?php
/**
* 29.04.2015 (11:15)
* YodaSpeak.php
* PhpStorm
*/
header ( "Content-Type: text/plain; charset=utf-8" ) ;
// $text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!";
// Другие варианты для тестов
// $text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
$text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей." ;
/* Делает первую букву предложения заглавной */
function makeFirstLetterUppercase( $text )
{
$text = $firstLetter . $otherLetters ;
return $text ;
}
function makeYodaStyleText( $text )
{
$yodaSpeaks = '' ;
$regexpSep = '/[\.!]/u' ; /* Разделители предложении */
$regexpRemoveMarks = '/[,.;]/' ; /* Разделители слов */
$sentences = preg_split ( $regexpSep , $text , 0 , PREG_SPLIT_NO_EMPTY
) ; /* Разбиваем текст на предложения */ foreach ( $sentences as $key => $sentence ) {
$words = explode ( " " , $sentence ) ; /* Разбиваем предложение на слова */ $result = implode ( " " , $words ) ; /* Преобразуем массив в текст */ $result = trim ( $result ) ; /* Обрезаем пробелы в начале и в конце стороки */ $result = preg_replace ( $regexpRemoveMarks , '' , $result ) ; /* Удаляем разделители слов */ $result = mb_strtolower ( $result ) ; /* Приводим все к нижнему регистру */ $result = makeFirstLetterUppercase( $result ) ; /* Пропускаем через функцию, делающую первую букву заглавной */
/* Собираем предложения в единый текст */
if ( $key > 0 ) {
$yodaSpeaks = $yodaSpeaks . ". " . $result ;
} else {
$yodaSpeaks .= $result ;
}
}
return $yodaSpeaks . "." ;
}
$yodaText = makeYodaStyleText( $text ) ;
echo "Йода говорит: {$yodaText} \n " ;
PD9waHAKCi8qKgogKiAyOS4wNC4yMDE1ICgxMToxNSkKICogWW9kYVNwZWFrLnBocAogKiBQaHBTdG9ybQogKi8KCmVycm9yX3JlcG9ydGluZygtMSk7Cm1iX2ludGVybmFsX2VuY29kaW5nKCd1dGYtOCcpOwpoZWFkZXIoIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOCIpOwoKLy8gJHRleHQgPSAi0JrQsNC20LXRgtGB0Y8sINC90LDRgSDQvtCx0L3QsNGA0YPQttC40LvQuCEg0J3QsNC00L4g0YHRgNC+0YfQvdC+INGD0YXQvtC00LjRgtGMINC+0YLRgdGO0LTQsCwg0L/QvtC60LAg0L3QtSDQv9C+0LfQtNC90L4uINCR0LXQttC40Lwg0LbQtSDRgdC60L7RgNC10LUhIjsKLy8g0JTRgNGD0LPQuNC1INCy0LDRgNC40LDQvdGC0Ysg0LTQu9GPINGC0LXRgdGC0L7QsgovLyAkdGV4dCA9ICLQndGDLCDQv9GA0L7RgdGC0Lgg0LzQtdC90Y8hINCd0LUg0YXQvtGC0LXQu9CwINGPINGC0LXQsdC1INC30LvQsCDRgdC00LXQu9Cw0YLRjDsg0LTQsCDQsiDRgdC10LHQtSDQvdC1INCy0L7Qu9GM0L3QsCDQsdGL0LvQsC4g0KfRgtC+INCz0L7QstC+0YDQuNC70LAsINGH0YLQviDQtNC10LvQsNC70LAsINGB0LXQsdGPINC90LUg0L/QvtC80L3QuNC70LAuIjsKJHRleHQgPSAi0JjQtNC10YIg0LPRgNCw0LbQtNCw0L3RgdC60LDRjyDQstC+0LnQvdCwLiDQmtC+0YHQvNC40YfQtdGB0LrQuNC1INC60L7RgNCw0LHQu9C4INC/0L7QstGB0YLQsNC90YbQtdCyLCDQvdCw0L3QvtGB0Y/RidC40LUg0YPQtNCw0YAg0YEg0YLQsNC50L3QvtC5INCx0LDQt9GLLCDQvtC00LXRgNC20LDQu9C4INC/0LXRgNCy0YPRjiDQv9C+0LHQtdC00YMsINCyINGB0YXQstCw0YLQutC1INGB0L4g0LfQu9C+0LLQtdGJ0LXQuSDQk9Cw0LvQsNC60YLQuNGH0LXRgdC60L7QuSDQmNC80L/QtdGA0LjQtdC5LiI7CgovKiDQlNC10LvQsNC10YIg0L/QtdGA0LLRg9GOINCx0YPQutCy0YMg0L/RgNC10LTQu9C+0LbQtdC90LjRjyDQt9Cw0LPQu9Cw0LLQvdC+0LkgKi8KZnVuY3Rpb24gbWFrZUZpcnN0TGV0dGVyVXBwZXJjYXNlKCR0ZXh0KQp7CiAgICAkZmlyc3RMZXR0ZXIgPSBtYl9zdWJzdHIoJHRleHQsIDAsIDEpOwogICAgJGZpcnN0TGV0dGVyID0gbWJfc3RydG91cHBlcigkZmlyc3RMZXR0ZXIpOwogICAgJG90aGVyTGV0dGVycyA9IG1iX3N1YnN0cigkdGV4dCwgMSk7CiAgICAkdGV4dCA9ICRmaXJzdExldHRlciAuICRvdGhlckxldHRlcnM7CiAgICByZXR1cm4gJHRleHQ7Cn0KCmZ1bmN0aW9uIG1ha2VZb2RhU3R5bGVUZXh0KCR0ZXh0KQp7CiAgICAkeW9kYVNwZWFrcyA9ICcnOwogICAgJHJlZ2V4cFNlcCA9ICcvW1wuIV0vdSc7IC8qINCg0LDQt9C00LXQu9C40YLQtdC70Lgg0L/RgNC10LTQu9C+0LbQtdC90LjQuCAqLwogICAgJHJlZ2V4cFJlbW92ZU1hcmtzID0gJy9bLC47XS8nOyAvKiDQoNCw0LfQtNC10LvQuNGC0LXQu9C4INGB0LvQvtCyICovCiAgICAkc2VudGVuY2VzID0gcHJlZ19zcGxpdCgkcmVnZXhwU2VwLCAkdGV4dCwgMCwgUFJFR19TUExJVF9OT19FTVBUWSk7IC8qINCg0LDQt9Cx0LjQstCw0LXQvCDRgtC10LrRgdGCINC90LAg0L/RgNC10LTQu9C+0LbQtdC90LjRjyAqLwogICAgZm9yZWFjaCAoJHNlbnRlbmNlcyBhcyAka2V5ID0+ICRzZW50ZW5jZSkgewogICAgICAgICR3b3JkcyA9IGV4cGxvZGUoIiAiLCAkc2VudGVuY2UpOyAvKiDQoNCw0LfQsdC40LLQsNC10Lwg0L/RgNC10LTQu9C+0LbQtdC90LjQtSDQvdCwINGB0LvQvtCy0LAgKi8KICAgICAgICAkd29yZHMgPSBhcnJheV9yZXZlcnNlKCR3b3Jkcyk7IC8qINCf0LXRgNC10LLQvtGA0LDRh9C40LLQsNC10Lwg0LzQsNGB0YHQuNCyICovCiAgICAgICAgJHJlc3VsdCA9IGltcGxvZGUoIiAiLCAkd29yZHMpOyAvKiDQn9GA0LXQvtCx0YDQsNC30YPQtdC8INC80LDRgdGB0LjQsiDQsiDRgtC10LrRgdGCICovCiAgICAgICAgJHJlc3VsdCA9IHRyaW0oJHJlc3VsdCk7IC8qINCe0LHRgNC10LfQsNC10Lwg0L/RgNC+0LHQtdC70Ysg0LIg0L3QsNGH0LDQu9C1INC4INCyINC60L7QvdGG0LUg0YHRgtC+0YDQvtC60LggKi8KICAgICAgICAkcmVzdWx0ID0gcHJlZ19yZXBsYWNlKCRyZWdleHBSZW1vdmVNYXJrcywgJycsICRyZXN1bHQpOyAvKiDQo9C00LDQu9GP0LXQvCDRgNCw0LfQtNC10LvQuNGC0LXQu9C4INGB0LvQvtCyICovCiAgICAgICAgJHJlc3VsdCA9IG1iX3N0cnRvbG93ZXIoJHJlc3VsdCk7IC8qINCf0YDQuNCy0L7QtNC40Lwg0LLRgdC1INC6INC90LjQttC90LXQvNGDINGA0LXQs9C40YHRgtGA0YMgKi8KICAgICAgICAkcmVzdWx0ID0gbWFrZUZpcnN0TGV0dGVyVXBwZXJjYXNlKCRyZXN1bHQpOyAvKiDQn9GA0L7Qv9GD0YHQutCw0LXQvCDRh9C10YDQtdC3INGE0YPQvdC60YbQuNGOLCDQtNC10LvQsNGO0YnRg9GOINC/0LXRgNCy0YPRjiDQsdGD0LrQstGDINC30LDQs9C70LDQstC90L7QuSAqLwogICAgICAgIC8qINCh0L7QsdC40YDQsNC10Lwg0L/RgNC10LTQu9C+0LbQtdC90LjRjyDQsiDQtdC00LjQvdGL0Lkg0YLQtdC60YHRgiAqLwogICAgICAgIGlmICgka2V5ID4gMCkgewogICAgICAgICAgICAkeW9kYVNwZWFrcyA9ICR5b2RhU3BlYWtzIC4gIi4gIiAuICRyZXN1bHQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHlvZGFTcGVha3MgLj0gJHJlc3VsdDsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gJHlvZGFTcGVha3MgLiAiLiI7Cn0KCiR5b2RhVGV4dCA9IG1ha2VZb2RhU3R5bGVUZXh0KCR0ZXh0KTsKZWNobyAi0JnQvtC00LAg0LPQvtCy0L7RgNC40YI6IHskeW9kYVRleHR9XG4iOw==