<?php
//$text = "ну что. не смотрел еще black mesa.я собирался скачать ,но все как-то некогда было.";
// Для тестов
//$text = 'roses are red,and violets are blue.whatever you do i\'ll keep it for you.';
$text = "много их в Петербурге?молоденьких дур,сегодня в атласе да бархате,а завтра , поглядишь , метут улицу вместе с голью кабацкою...в самом деле ,что было бы с нами ,если бы вместо общеудобного правила:чин чина почитай , ввелось в употребление другое,например:ум ума почитай?какие возникли бы споры!" ;
// $text = 'привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница.';
/* Делает первую букву в строке заглавной */
function makeFirstLetterUppercase( $text ) {
// $reg='/^[а-яёa-z]/u';
// $match=preg_match_all($reg,$text,$match);
// var_dump($match[0]);
// $text=preg_replace($reg,mb_strtoupper($match[0]),$text);
return $text ;
}
$text = makeFirstLetterUppercase( $text ) ;
function fixText( $text ) {
$regSpacesAfter = '/([.,:?;!])\\s*()/u' ;
$mat = [ ] ;
$regSpacesBefore = '/()\\s+([.,:?;!])/u' ;
for ( $i = 0 ; $i < $count ; $i ++ ) {
}
$regToUpper = '/[?!.]\\s([а-яёa-z])/u' ;
$match = [ ] ;
$countMatch = count ( $match ) ; for ( $i = 0 ; $i < $countMatch ; $i ++ ) {
}
return $text ;
}
$text = fixText( $text ) ;
echo "{$text} \n " ;
?>
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7Cm1iX2ludGVybmFsX2VuY29kaW5nKCd1dGYtOCcpOwoKLy8kdGV4dCA9ICLQvdGDINGH0YLQvi4gICAgICDQvdC1INGB0LzQvtGC0YDQtdC7INC10YnQtSBibGFjayBtZXNhLtGPINGB0L7QsdC40YDQsNC70YHRjyDRgdC60LDRh9Cw0YLRjCAgLNC90L4g0LLRgdC1INC60LDQui3RgtC+INC90LXQutC+0LPQtNCwINCx0YvQu9C+LiI7Ci8vINCU0LvRjyDRgtC10YHRgtC+0LIKLy8kdGV4dCA9ICdyb3NlcyBhcmUgcmVkLGFuZCB2aW9sZXRzIGFyZSBibHVlLndoYXRldmVyIHlvdSBkbyBpXCdsbCBrZWVwIGl0IGZvciB5b3UuJzsKCiR0ZXh0PSLQvNC90L7Qs9C+INC40YUg0LIg0J/QtdGC0LXRgNCx0YPRgNCz0LU/0LzQvtC70L7QtNC10L3RjNC60LjRhSDQtNGD0YAs0YHQtdCz0L7QtNC90Y8g0LIg0LDRgtC70LDRgdC1INC00LAg0LHQsNGA0YXQsNGC0LUs0LAg0LfQsNCy0YLRgNCwICwg0L/QvtCz0LvRj9C00LjRiNGMICwg0LzQtdGC0YPRgiDRg9C70LjRhtGDINCy0LzQtdGB0YLQtSDRgSDQs9C+0LvRjNGOINC60LDQsdCw0YbQutC+0Y4uLi7QsiDRgdCw0LzQvtC8INC00LXQu9C1ICzRh9GC0L4g0LHRi9C70L4g0LHRiyDRgSDQvdCw0LzQuCAs0LXRgdC70Lgg0LHRiyDQstC80LXRgdGC0L4g0L7QsdGJ0LXRg9C00L7QsdC90L7Qs9C+INC/0YDQsNCy0LjQu9CwOtGH0LjQvSDRh9C40L3QsCDQv9C+0YfQuNGC0LDQuSAsINCy0LLQtdC70L7RgdGMINCyINGD0L/QvtGC0YDQtdCx0LvQtdC90LjQtSDQtNGA0YPQs9C+0LUs0L3QsNC/0YDQuNC80LXRgDrRg9C8INGD0LzQsCDQv9C+0YfQuNGC0LDQuT/QutCw0LrQuNC1INCy0L7Qt9C90LjQutC70Lgg0LHRiyDRgdC/0L7RgNGLISI7Ci8vICR0ZXh0ID0gJ9C/0YDQuNCy0LXRgi7QtdGB0YLRjCAyINGE0YPQvdC60YbQuNC4LHByZWdfc3BsaXQg0LggZXhwbG9kZSAs0L3QtSDQv9C+0L3QuNC80LDRjizQsiDRh9C10Lwg0LzQtdC20LTRgyDQvdC40LzQuCDRgNCw0LfQvdC40YbQsC4nOwoKLyog0JTQtdC70LDQtdGCINC/0LXRgNCy0YPRjiDQsdGD0LrQstGDINCyINGB0YLRgNC+0LrQtSDQt9Cw0LPQu9Cw0LLQvdC+0LkgKi8KZnVuY3Rpb24gbWFrZUZpcnN0TGV0dGVyVXBwZXJjYXNlKCR0ZXh0KSB7CiAgICAvLyAkcmVnPScvXlvQsC3Rj9GRYS16XS91JzsKICAgIC8vICRtYXRjaD1wcmVnX21hdGNoX2FsbCgkcmVnLCR0ZXh0LCRtYXRjaCk7CiAgICAvLyB2YXJfZHVtcCgkbWF0Y2hbMF0pOwogICAgLy8gJHRleHQ9cHJlZ19yZXBsYWNlKCRyZWcsbWJfc3RydG91cHBlcigkbWF0Y2hbMF0pLCR0ZXh0KTsKICAgICRmaXJzdExldHRlcj1tYl9zdHJ0b3VwcGVyKG1iX3N1YnN0cigkdGV4dCwwLDEpKTsKICAgICR0ZXh0PSRmaXJzdExldHRlci5tYl9zdWJzdHIoJHRleHQsMSk7CiAgICByZXR1cm4gJHRleHQ7CiAgICAKfQokdGV4dD1tYWtlRmlyc3RMZXR0ZXJVcHBlcmNhc2UoJHRleHQpOwoKZnVuY3Rpb24gZml4VGV4dCgkdGV4dCkgewoKICAgJHJlZ1NwYWNlc0FmdGVyPScvKFsuLDo/OyFdKVxccyooKS91JzsKICAgJHRleHQ9cHJlZ19yZXBsYWNlKCRyZWdTcGFjZXNBZnRlciwiJDEgJDIiLCR0ZXh0KTsKICAgJG1hdD1bXTsKICAgJHJlZ1NwYWNlc0JlZm9yZT0nLygpXFxzKyhbLiw6PzshXSkvdSc7CiAgIHByZWdfbWF0Y2hfYWxsKCRyZWdTcGFjZXNCZWZvcmUsJHRleHQsJG1hdCxQUkVHX1NFVF9PUkRFUik7CiAgICRjb3VudD1jb3VudCgkbWF0KTsKICAgICBmb3IoJGk9MDskaTwkY291bnQ7JGkrKyl7CiAgIAkgcHJlZ19tYXRjaF9hbGwoJHJlZ1NwYWNlc0JlZm9yZSwkdGV4dCwkbWF0LFBSRUdfU0VUX09SREVSKTsKICAgCSAkdGV4dD1wcmVnX3JlcGxhY2UoJHJlZ1NwYWNlc0JlZm9yZSwkbWF0WzBdWzJdLCR0ZXh0LCAxKTsKICAgCSAKICAgfQogIAogICAKICAgJHJlZ1RvVXBwZXI9Jy9bPyEuXVxccyhb0LAt0Y/RkWEtel0pL3UnOwogICAkbWF0Y2g9W107CiAgIHByZWdfbWF0Y2hfYWxsKCRyZWdUb1VwcGVyLCR0ZXh0LCRtYXRjaCxQUkVHX1NFVF9PUkRFUik7CiAgICRjb3VudE1hdGNoPWNvdW50KCRtYXRjaCk7CiAgIGZvcigkaT0wOyRpPCRjb3VudE1hdGNoOyRpKyspewogICBwcmVnX21hdGNoX2FsbCgkcmVnVG9VcHBlciwkdGV4dCwkbWF0Y2gsUFJFR19TRVRfT1JERVIpOwogICAkdGV4dD1wcmVnX3JlcGxhY2UoJHJlZ1RvVXBwZXIsbWJfc3RydG91cHBlcigkbWF0Y2hbMF1bMF0pLCR0ZXh0LDEpOwogICAKICAgfQogICByZXR1cm4gJHRleHQ7Cn0KCiR0ZXh0ID0gZml4VGV4dCgkdGV4dCk7CmVjaG8gInskdGV4dH1cbiI7Cj8+