<?php
//Пиши верно
//$text = "ну что. не смотрел еще black mesa. я собирался скачать ,но все как-то некогда было.";
// Для тестов
// $text = "roses are red,and violets are blue.whatever you do i'll keep it for you.";
// $text = 'привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница.';
$text = "много их в Петербурге,молоденьких дур,сегодня в атласе да бархате,а завтра , поглядишь , метут улицу вместе с голью кабацкою...в самом деле ,что было бы с нами ,если бы вместо общеудобного прaвила:чин чина почитай , ввелось в употребление другое,например:ум ума почитай?какие возникли бы споры!" ;
/* Делает первую букву в строке заглавной */
function makeFirstLetterUppercase( $text ) {
$letters = preg_split ( "//u" , $text ,- 1 , PREG_SPLIT_NO_EMPTY
) ; return $sentence ;
}
/* исправляет текст */
function fixText( $text ) {
$regExp = [
"/(^ *)/u" , //пробелы в начале строки
"/ +/u" , //лишние пробелы в тексте
"/ *([.,?!:]) */u" , //знаки препининия
"/\. \. \. */u" //троеточие с пробелами между точек
] ;
$result = '' ;
$matches = preg_split ( "/(?<=[?!.])/u" , $text ,- 1 , PREG_SPLIT_NO_EMPTY
) ;
$text = preg_replace ( $regExp [ 1 ] , ' ' , $text ) ; // удаляем лишние пробелы в тексте
foreach ( $matches as $match ) {
$match = preg_replace ( $regExp [ 0 ] , '' , $match ) ; // удаляем пробел из начала строки $match = preg_replace ( $regExp [ 2 ] , '$1 ' , $match ) ; // меняем на знак препинания и пробел $match = makeFirstLetterUppercase( $match ) ;
$result .= $match ;
}
$result = preg_replace ( "/\. \. \. */u" , "... " , $result ) ; //исправляем троеточие return $result ;
}
$result = fixText( $text ) ;
echo "{$result} \n " ;
PD9waHAKCi8v0J/QuNGI0Lgg0LLQtdGA0L3QvgplcnJvcl9yZXBvcnRpbmcoLTEpOwptYl9pbnRlcm5hbF9lbmNvZGluZygndXRmLTgnKTsKCi8vJHRleHQgPSAi0L3RgyDRh9GC0L4uICAgICAg0L3QtSDRgdC80L7RgtGA0LXQuyDQtdGJ0LUgYmxhY2sgbWVzYS4g0Y8g0YHQvtCx0LjRgNCw0LvRgdGPINGB0LrQsNGH0LDRgtGMICAs0L3QviDQstGB0LUg0LrQsNC6LdGC0L4g0L3QtdC60L7Qs9C00LAg0LHRi9C70L4uIjsKLy8g0JTQu9GPINGC0LXRgdGC0L7QsgovLyAkdGV4dCA9ICJyb3NlcyBhcmUgcmVkLGFuZCB2aW9sZXRzIGFyZSBibHVlLndoYXRldmVyIHlvdSBkbyBpJ2xsIGtlZXAgaXQgZm9yIHlvdS4iOwovLyAkdGV4dCA9ICfQv9GA0LjQstC10YIu0LXRgdGC0YwgMiDRhNGD0L3QutGG0LjQuCxwcmVnX3NwbGl0INC4IGV4cGxvZGUgLNC90LUg0L/QvtC90LjQvNCw0Y4s0LIg0YfQtdC8INC80LXQttC00YMg0L3QuNC80Lgg0YDQsNC30L3QuNGG0LAuJzsKJHRleHQgPSAi0LzQvdC+0LPQviDQuNGFINCyINCf0LXRgtC10YDQsdGD0YDQs9C1LNC80L7Qu9C+0LTQtdC90YzQutC40YUg0LTRg9GALNGB0LXQs9C+0LTQvdGPINCyINCw0YLQu9Cw0YHQtSDQtNCwINCx0LDRgNGF0LDRgtC1LNCwINC30LDQstGC0YDQsCAsINC/0L7Qs9C70Y/QtNC40YjRjCAsINC80LXRgtGD0YIg0YPQu9C40YbRgyDQstC80LXRgdGC0LUg0YEg0LPQvtC70YzRjiDQutCw0LHQsNGG0LrQvtGOLi4u0LIg0YHQsNC80L7QvCDQtNC10LvQtSAs0YfRgtC+INCx0YvQu9C+INCx0Ysg0YEg0L3QsNC80LggLNC10YHQu9C4INCx0Ysg0LLQvNC10YHRgtC+INC+0LHRidC10YPQtNC+0LHQvdC+0LPQviDQv9GAYdCy0LjQu9CwOtGH0LjQvSDRh9C40L3QsCDQv9C+0YfQuNGC0LDQuSAsINCy0LLQtdC70L7RgdGMINCyINGD0L/QvtGC0YDQtdCx0LvQtdC90LjQtSDQtNGA0YPQs9C+0LUs0L3QsNC/0YDQuNC80LXRgDrRg9C8INGD0LzQsCDQv9C+0YfQuNGC0LDQuT/QutCw0LrQuNC1INCy0L7Qt9C90LjQutC70Lgg0LHRiyDRgdC/0L7RgNGLISI7CgoKLyog0JTQtdC70LDQtdGCINC/0LXRgNCy0YPRjiDQsdGD0LrQstGDINCyINGB0YLRgNC+0LrQtSDQt9Cw0LPQu9Cw0LLQvdC+0LkgKi8KZnVuY3Rpb24gbWFrZUZpcnN0TGV0dGVyVXBwZXJjYXNlKCR0ZXh0KSB7CgkkbGV0dGVycyA9IHByZWdfc3BsaXQoIi8vdSIsICR0ZXh0LC0xLFBSRUdfU1BMSVRfTk9fRU1QVFkpOwoJJGxldHRlcnNbMF0gPSBtYl9zdHJ0b3VwcGVyKCRsZXR0ZXJzWzBdKTsKCSRzZW50ZW5jZSA9IGltcGxvZGUoJycsJGxldHRlcnMpOwogICAgcmV0dXJuICAkc2VudGVuY2U7Cn0KCi8qINC40YHQv9GA0LDQstC70Y/QtdGCINGC0LXQutGB0YIgKi8KZnVuY3Rpb24gZml4VGV4dCgkdGV4dCkgewoJJHJlZ0V4cCA9WwoJCSIvKF4gKikvdSIsIC8v0L/RgNC+0LHQtdC70Ysg0LIg0L3QsNGH0LDQu9C1INGB0YLRgNC+0LrQuAoJCSIvICArL3UiLCAgIC8v0LvQuNGI0L3QuNC1INC/0YDQvtCx0LXQu9GLINCyINGC0LXQutGB0YLQtQoJCSIvICooWy4sPyE6XSkgKi91IiwgLy/Qt9C90LDQutC4INC/0YDQtdC/0LjQvdC40L3QuNGPIAoJCSIvXC4gXC4gXC4gKi91IiAvL9GC0YDQvtC10YLQvtGH0LjQtSDRgSDQv9GA0L7QsdC10LvQsNC80Lgg0LzQtdC20LTRgyDRgtC+0YfQtdC6CgkJXTsKCSRyZXN1bHQgPSAnJzsKCSRtYXRjaGVzID0gYXJyYXkoKTsJCgkkbWF0Y2hlcyA9IHByZWdfc3BsaXQoIi8oPzw9Wz8hLl0pL3UiLCAkdGV4dCAsLTEsUFJFR19TUExJVF9OT19FTVBUWSk7CgkKCSR0ZXh0ID0gcHJlZ19yZXBsYWNlKCRyZWdFeHBbMV0sICcgJywgJHRleHQpOyAvLyDRg9C00LDQu9GP0LXQvCDQu9C40YjQvdC40LUg0L/RgNC+0LHQtdC70Ysg0LIg0YLQtdC60YHRgtC1CgkKCWZvcmVhY2goJG1hdGNoZXMgYXMgJG1hdGNoKXsKCQkkbWF0Y2ggPSBwcmVnX3JlcGxhY2UoJHJlZ0V4cFswXSwgJycsICRtYXRjaCk7IC8vINGD0LTQsNC70Y/QtdC8INC/0YDQvtCx0LXQuyDQuNC3INC90LDRh9Cw0LvQsCDRgdGC0YDQvtC60LgKCQkkbWF0Y2ggPSBwcmVnX3JlcGxhY2UoJHJlZ0V4cFsyXSwgJyQxICcsICRtYXRjaCk7IC8vINC80LXQvdGP0LXQvCDQvdCwINC30L3QsNC6INC/0YDQtdC/0LjQvdCw0L3QuNGPINC4INC/0YDQvtCx0LXQuwoJCSRtYXRjaCA9IG1ha2VGaXJzdExldHRlclVwcGVyY2FzZSgkbWF0Y2gpOwoJCSRyZXN1bHQgLj0gJG1hdGNoOyAKCX0KCQoJJHJlc3VsdCA9IHByZWdfcmVwbGFjZSgiL1wuIFwuIFwuICovdSIsICIuLi4gIiwgJHJlc3VsdCk7IC8v0LjRgdC/0YDQsNCy0LvRj9C10Lwg0YLRgNC+0LXRgtC+0YfQuNC1CglyZXR1cm4gJHJlc3VsdDsKfQoKJHJlc3VsdCA9IGZpeFRleHQoJHRleHQpOwplY2hvICJ7JHJlc3VsdH1cbiI7Cg==