<?php
error_reporting(-1);
mb_internal_encoding('utf-8');
$text = <<<EOF
Тест:::Тест.много их в Петербурге,молоденьких дур,сегодня в
атласе да бархате,а завтра , поглядишь , метут улицу вместе с голью
кабацкою...в самом деле ,что было!!!бы с нами ,если бы вместо общеудобного
правила:чин чина почитай , ввелось в употребление другое,например::ум ума
почитай?какие возникли... бы споры!
ну что? не смотрел еще black mesa!я собирался скачать ,но все как-то некогда было.
привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница.
EOF
;
/* Делает первую букву в строке заглавной */
function makeFirstLetterUppercase($text)
{
$text = mb_strtoupper(mb_substr($text, 0, 1)) . mb_substr($text, 1, NULL);
return $text;
}
/* исправляет текст */
function fixText($text)
{
$regexpSpace = '/(\\s)*(\,)/iu'; // Удалит пробелы до запятой
$regexp = '/([а-яёa-z])([\,\:\!\?\.]+)([а-яёa-z])/iu';
$sentences = preg_split('/((?<=[.?!]))/iu', $text, 0, PREG_SPLIT_NO_EMPTY); // Разбить текст
foreach ($sentences as $sentence) {
$sentences = trim($sentence); // Обрезает пробелы между предложениями
$sentencesFix[] = makeFirstLetterUppercase($sentences); // Сделает все предложения с большой буквы
}
$text = implode($sentencesFix); // Собирает в текст все предложения
$text = preg_replace($regexpSpace, '$2', $text); // Удаляет пробелы до запятой
$text = preg_replace($regexp, '$1$2 $3', $text); // Ставит пробел после (, :, !, &, .)
return $text;
}
echo fixText($text);