<?php
$text = "Кажется, нас обнаружили! Надо срочно уходить отсюда, пока не поздно. Бежим же скорее!" ;
//$text = "Ну, прости меня! Не хотела я тебе зла сделать; да в себе не вольна была. Что говорила, что делала, себя не помнила.";
//$text = "Идет гражданская война. Космические корабли повстанцев, наносящие удар с тайной базы, одержали первую победу, в схватке со зловещей Галактической Империей.";
/* Делает первую букву предложения заглавной */
function makeFirstletterUppercase( & $parts ) {
$letters = mb_substr ( $parts , 0 , 1 ) ; //выделяем первую букву $upLetters = mb_strtoupper ( $letters ) ; //переводим ее в верхний регистр $parts = mb_substr ( $parts , 1 ) ; //вделяем предложение кроме первой буквы $parts = $upLetters . $parts ; //"склеиваем" результат
}
/* Делает Йода-style текст */
function makeYodaStyleText( $text ) {
$i = 0 ; //переменная для массива
$arr = array ( ) ; //пустой массив $regexp = '/[.!?]/' ; //регулярка для разбивки текста на предложения
$parts = preg_split ( $regexp , $text , 0 , PREG_SPLIT_NO_EMPTY
) ; //разбиваем текст на предложения foreach ( $parts as & $value ) { //пошли по массиву предложений - делим предложения на слова
$words = explode ( " " , $value ) ; //разбиваем слова пробелами krsort ( $words ) ; //сортируем массив из слов по значениям в обратном порядке $newParts = implode ( " " , $words ) ; //объединяем слова в предложения $newParts = mb_strtolower ( $newParts ) ; //все буквы в нижний регистр $newParts = trim ( $newParts ) ; //удаляем пробелы в каждом предложении $newParts = str_replace ( "," , "" , $newParts ) ; //убираем запятые $arr [ $i ] = $newParts ; //составляем новый массив из предложений
//Так как ниже нельзя делать?
$i ++; //увеличиваем счетчик массива
array_walk ( $arr , 'makeFirstLetterUppercase' ) ; //применяем функцию Заглавной буквы к массиву предложений }
$result = implode ( ". " , $arr ) ; //объединяем массив в строку, ставим точки $result = $result . "." ; //добавляем точку в конце (коряво?)
return $result ;
}
$yodaText = makeYodaStyleText( $text ) ;
echo "Йода говорит: {$yodaText} \n " ;
PD9waHAKIAplcnJvcl9yZXBvcnRpbmcoLTEpOwptYl9pbnRlcm5hbF9lbmNvZGluZygndXRmLTgnKTsKIAokdGV4dCA9ICLQmtCw0LbQtdGC0YHRjywg0L3QsNGBINC+0LHQvdCw0YDRg9C20LjQu9C4ISDQndCw0LTQviDRgdGA0L7Rh9C90L4g0YPRhdC+0LTQuNGC0Ywg0L7RgtGB0Y7QtNCwLCDQv9C+0LrQsCDQvdC1INC/0L7Qt9C00L3Qvi4g0JHQtdC20LjQvCDQttC1INGB0LrQvtGA0LXQtSEiOwovLyR0ZXh0ID0gItCd0YMsINC/0YDQvtGB0YLQuCDQvNC10L3RjyEg0J3QtSDRhdC+0YLQtdC70LAg0Y8g0YLQtdCx0LUg0LfQu9CwINGB0LTQtdC70LDRgtGMOyDQtNCwINCyINGB0LXQsdC1INC90LUg0LLQvtC70YzQvdCwINCx0YvQu9CwLiDQp9GC0L4g0LPQvtCy0L7RgNC40LvQsCwg0YfRgtC+INC00LXQu9Cw0LvQsCwg0YHQtdCx0Y8g0L3QtSDQv9C+0LzQvdC40LvQsC4iOwovLyR0ZXh0ID0gItCY0LTQtdGCINCz0YDQsNC20LTQsNC90YHQutCw0Y8g0LLQvtC50L3QsC4g0JrQvtGB0LzQuNGH0LXRgdC60LjQtSDQutC+0YDQsNCx0LvQuCDQv9C+0LLRgdGC0LDQvdGG0LXQsiwg0L3QsNC90L7RgdGP0YnQuNC1INGD0LTQsNGAINGBINGC0LDQudC90L7QuSDQsdCw0LfRiywg0L7QtNC10YDQttCw0LvQuCDQv9C10YDQstGD0Y4g0L/QvtCx0LXQtNGDLCDQsiDRgdGF0LLQsNGC0LrQtSDRgdC+INC30LvQvtCy0LXRidC10Lkg0JPQsNC70LDQutGC0LjRh9C10YHQutC+0Lkg0JjQvNC/0LXRgNC40LXQuS4iOwogCi8qINCU0LXQu9Cw0LXRgiDQv9C10YDQstGD0Y4g0LHRg9C60LLRgyDQv9GA0LXQtNC70L7QttC10L3QuNGPINC30LDQs9C70LDQstC90L7QuSAqLwpmdW5jdGlvbiBtYWtlRmlyc3RsZXR0ZXJVcHBlcmNhc2UoJiRwYXJ0cykgewogICAgJGxldHRlcnMgPSBtYl9zdWJzdHIoJHBhcnRzLCAwLCAxKTsgLy/QstGL0LTQtdC70Y/QtdC8INC/0LXRgNCy0YPRjiDQsdGD0LrQstGDCiAgICAkdXBMZXR0ZXJzID0gbWJfc3RydG91cHBlcigkbGV0dGVycyk7IC8v0L/QtdGA0LXQstC+0LTQuNC8INC10LUg0LIg0LLQtdGA0YXQvdC40Lkg0YDQtdCz0LjRgdGC0YAKICAgICRwYXJ0cyA9IG1iX3N1YnN0cigkcGFydHMsIDEpOyAvL9Cy0LTQtdC70Y/QtdC8INC/0YDQtdC00LvQvtC20LXQvdC40LUg0LrRgNC+0LzQtSDQv9C10YDQstC+0Lkg0LHRg9C60LLRiwogICAgJHBhcnRzID0gJHVwTGV0dGVycyAuICRwYXJ0czsgLy8i0YHQutC70LXQuNCy0LDQtdC8IiDRgNC10LfRg9C70YzRgtCw0YIKfQogCi8qINCU0LXQu9Cw0LXRgiDQmdC+0LTQsC1zdHlsZSDRgtC10LrRgdGCICovCmZ1bmN0aW9uIG1ha2VZb2RhU3R5bGVUZXh0KCR0ZXh0KSB7CiAgICAkaSA9IDA7IC8v0L/QtdGA0LXQvNC10L3QvdCw0Y8g0LTQu9GPINC80LDRgdGB0LjQstCwCiAgICAkYXJyID0gYXJyYXkoKTsgLy/Qv9GD0YHRgtC+0Lkg0LzQsNGB0YHQuNCyCiAgICAkcmVnZXhwID0gJy9bLiE/XS8nOyAvL9GA0LXQs9GD0LvRj9GA0LrQsCDQtNC70Y8g0YDQsNC30LHQuNCy0LrQuCDRgtC10LrRgdGC0LAg0L3QsCDQv9GA0LXQtNC70L7QttC10L3QuNGPCiAgICAkcGFydHMgPSBwcmVnX3NwbGl0KCRyZWdleHAsICR0ZXh0LCAwLCBQUkVHX1NQTElUX05PX0VNUFRZKTsgLy/RgNCw0LfQsdC40LLQsNC10Lwg0YLQtdC60YHRgiDQvdCwINC/0YDQtdC00LvQvtC20LXQvdC40Y8KICAgIGZvcmVhY2ggKCRwYXJ0cyBhcyAmJHZhbHVlKSB7IC8v0L/QvtGI0LvQuCDQv9C+INC80LDRgdGB0LjQstGDINC/0YDQtdC00LvQvtC20LXQvdC40LkgLSDQtNC10LvQuNC8INC/0YDQtdC00LvQvtC20LXQvdC40Y8g0L3QsCDRgdC70L7QstCwCiAgICAJJHdvcmRzID0gZXhwbG9kZSgiICIsICR2YWx1ZSk7IC8v0YDQsNC30LHQuNCy0LDQtdC8INGB0LvQvtCy0LAg0L/RgNC+0LHQtdC70LDQvNC4CiAgICAJa3Jzb3J0KCR3b3Jkcyk7IC8v0YHQvtGA0YLQuNGA0YPQtdC8INC80LDRgdGB0LjQsiDQuNC3INGB0LvQvtCyINC/0L4g0LfQvdCw0YfQtdC90LjRj9C8INCyINC+0LHRgNCw0YLQvdC+0Lwg0L/QvtGA0Y/QtNC60LUKICAgIAkkbmV3UGFydHMgPSBpbXBsb2RlKCIgIiwgJHdvcmRzKTsgLy/QvtCx0YrQtdC00LjQvdGP0LXQvCDRgdC70L7QstCwINCyINC/0YDQtdC00LvQvtC20LXQvdC40Y8KICAgIAkkbmV3UGFydHMgPSBtYl9zdHJ0b2xvd2VyKCRuZXdQYXJ0cyk7IC8v0LLRgdC1INCx0YPQutCy0Ysg0LIg0L3QuNC20L3QuNC5INGA0LXQs9C40YHRgtGACiAgICAJJG5ld1BhcnRzID0gdHJpbSgkbmV3UGFydHMpOyAvL9GD0LTQsNC70Y/QtdC8INC/0YDQvtCx0LXQu9GLINCyINC60LDQttC00L7QvCDQv9GA0LXQtNC70L7QttC10L3QuNC4CiAgICAJJG5ld1BhcnRzID0gc3RyX3JlcGxhY2UoIiwiLCAiIiwgJG5ld1BhcnRzKTsgLy/Rg9Cx0LjRgNCw0LXQvCDQt9Cw0L/Rj9GC0YvQtQogICAgCSRhcnJbJGldID0gJG5ld1BhcnRzOyAvL9GB0L7RgdGC0LDQstC70Y/QtdC8INC90L7QstGL0Lkg0LzQsNGB0YHQuNCyINC40Lcg0L/RgNC10LTQu9C+0LbQtdC90LjQuQogICAgCS8v0KLQsNC6INC60LDQuiDQvdC40LbQtSDQvdC10LvRjNC30Y8g0LTQtdC70LDRgtGMPwogICAgCSRpKys7IC8v0YPQstC10LvQuNGH0LjQstCw0LXQvCDRgdGH0LXRgtGH0LjQuiDQvNCw0YHRgdC40LLQsAogICAgCWFycmF5X3dhbGsoJGFyciwgJ21ha2VGaXJzdExldHRlclVwcGVyY2FzZScpOyAvL9C/0YDQuNC80LXQvdGP0LXQvCDRhNGD0L3QutGG0LjRjiDQl9Cw0LPQu9Cw0LLQvdC+0Lkg0LHRg9C60LLRiyDQuiDQvNCw0YHRgdC40LLRgyDQv9GA0LXQtNC70L7QttC10L3QuNC5CiAgICB9CiAgICAkcmVzdWx0ID0gaW1wbG9kZSgiLiAiLCAkYXJyKTsgLy/QvtCx0YrQtdC00LjQvdGP0LXQvCDQvNCw0YHRgdC40LIg0LIg0YHRgtGA0L7QutGDLCDRgdGC0LDQstC40Lwg0YLQvtGH0LrQuAogICAgJHJlc3VsdCA9ICRyZXN1bHQgLiAiLiI7IC8v0LTQvtCx0LDQstC70Y/QtdC8INGC0L7Rh9C60YMg0LIg0LrQvtC90YbQtSAo0LrQvtGA0Y/QstC+PykKICAgIHJldHVybiAkcmVzdWx0Owp9CiAKJHlvZGFUZXh0ID0gbWFrZVlvZGFTdHlsZVRleHQoJHRleHQpOwplY2hvICLQmdC+0LTQsCDQs9C+0LLQvtGA0LjRgjogeyR5b2RhVGV4dH1cbiI7